запретить сканеру следовать действиям формы POST - PullRequest
0 голосов
/ 22 июня 2011

У меня на сайте простая форма:

<form method="POST" action="Home/Import"> ... </form>

Я получаю тонны сообщений об ошибках, так как сканеры отправляют HEAD запрос на Home/Import

Форма уведомления POST .

Вопросы

  1. Почему сканеры пытаются сканировать эти действия?
  2. Что я могу сделать, чтобы предотвратить это? (У меня уже есть Дом в robots.txt)
  3. Какой хороший способ справиться с этими недействительными (но правильными) HEAD запросами?

подробности:
Я использую шаблон Post-Redirect-Get, если это имеет значение. Платформа: ASP.NET MVC 3.0 (C #) на IIS 7.5

Ответы [ 3 ]

0 голосов
/ 22 июня 2011

1) Искатель обычно делает запросы HEAD, чтобы получить mime-тип ответа.

2) Запрос HEAD не должен вызывать обработчик действия для POST.Если бы я увидел, что получаю много запросов HEAD к ресурсу, я не хочу, чтобы сканер сканировал, я бы дал ему ссылку, я хочу, чтобы он сканировал.Большинство сканеров читают Robots.txt

0 голосов
/ 23 мая 2015

4 года назад, но все еще отвечаю на вопрос № 1: Google действительно пытается сканировать POST-формы, просто отправляя «GET» на URL и действительные «POST» запросы. См. их блог на этом . Причина в природе Интернета: плохие веб-разработчики скрывают свои ссылки на контент за поисковыми формами POST. Чтобы достичь этого контента, поисковые системы должны импровизировать.

О # 2: надежность robots.txt варьируется.

И о # 3: Сверхчистый способ, вероятно, будет следующим: HTTP Status 405 Метод не разрешен, если, в частности, HEAD-запросы являются вашей проблемой. Не уверен, что браузерам это понравится.

0 голосов
/ 22 июня 2011

вы можете отключить запросы заголовков на уровне веб-сервера ... для apache:

<LimitExcept GET POST>
deny from all
</LimitExcept>

вы можете работать с этим на уровне robots.txt, добавив:

Disallow: /Home/Import

Запросы заголовковиспользуется для получения информации о странице, без получения всей страницы, например, времени последнего изменения, размера и т. д., это вопрос эффективности.ваш скрипт не должен давать ошибки из-за запросов заголовка, и эти ошибки, вероятно, из-за отсутствия проверок в вашем коде.Ваш код может проверить, является ли http-метод запроса 'head', и сделать что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...