Как остановить ботов от сканирования моих URL на основе AJAX? - PullRequest
6 голосов
/ 26 марта 2012

У меня есть несколько страниц на моем веб-сайте ASP.NET MVC 3 (не то, чтобы технология имела значение здесь), где я отображаю определенные URL-адреса в теге <script> на странице, чтобы мой JavaScript (сохранялся ввнешний файл) может выполнять вызовы AJAX на сервер.

Примерно так:

<html>
   ...
   <body>
      ...
      <script type="text/javascript">
         $(function() {
            myapp.paths.someUrl = '/blah/foo'; // not hardcoded in reality, but N/A here
         });
      </script>
   </body>
</html>

Теперь на стороне сервера большинство этих URL-адресов защищены атрибутами, утверждающими, что:

a) Доступ к ним возможен только через AJAX (например, XmlHttpRequest)

b) Доступ к ним возможен только через HTTP POST (так как он возвращает JSON - безопасность)

Проблема в том, что, по какой-то причине , боты сканируют эти URL и пытаются выполнить HTTP GET для них, что приводит к 404.

У меня сложилось впечатление, что боты не должны пытаться сканировать javascript,Так как же они получают эти URL-адреса?

Можно ли как-нибудь помешать им сделать это?

Я не могу переместить эти переменные URL-адреса во внешний файл, потому чтоКак видно из комментария в приведенном выше коде, я отображаю URL-адреса с помощью серверного кода (это необходимо сделать на фактической странице).

Я в основном добавил маршрутизацию на свой веб-сайт в HTTP 410 (Прошло)эти URL (когда это не AJAX POST).Что действительно раздражает, потому что он добавляет еще один маршрут в мою уже обреченную таблицу маршрутов.

Любые советы / предложения?

1 Ответ

3 голосов
/ 26 марта 2012

Запретить URL по префиксу в файле robots.txt

...