Обнаружение "стелс" веб-сканеров - PullRequest
106 голосов
/ 24 октября 2008

Какие есть варианты для обнаружения веб-сканеров, которые не хотят быть обнаруженными?

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

Я не говорю о хороших сканерах, таких как googlebot и Yahoo! Slurp. Я считаю, что бот хорош, если он:

  1. идентифицирует себя как бот в строке агента пользователя
  2. читает robots.txt (и подчиняется ему)

Я говорю о плохих сканерах, которые прячутся за обычными пользовательскими агентами, используют мою пропускную способность и никогда не дают мне ничего взамен.

Есть несколько люков, которые можно построить Обновлен список (спасибо Крис, gs) :

  1. Добавление каталога, указанного в списке (помеченного как запрещенный), только в файле robots.txt,
  2. Добавление невидимых ссылок (возможно помеченных как rel = "nofollow"?),
    • style = "display: none;" по ссылке или родительскому контейнеру
    • расположен под другим элементом с более высоким z-индексом
  3. определить, кто не понимает заглавных букв,
  4. определяет, кто пытается публиковать ответы, но всегда пропускает капчу.
  5. обнаружение запросов GET к ресурсам, доступным только для POST
  6. обнаружение интервала между запросами
  7. определить порядок запрашиваемых страниц
  8. определить, кто (последовательно) запрашивает ресурсы https через http
  9. определяет, кто не запрашивает файл изображения (это в сочетании со списком пользовательских агентов известных браузеров с поддержкой изображений работает на удивление приятно)

Некоторые ловушки будут срабатывать как «хорошими», так и «плохими» ботами. Вы можете объединить их с белым списком:

  1. срабатывает ловушка
  2. Это запрос robots.txt?
  3. Это не вызывает другую ловушку, потому что она повиновалась robots.txt

Еще одна важная вещь здесь:
Пожалуйста, рассмотрите слепых людей, использующих программы для чтения с экрана: дайте людям способ связаться с вами, или решите (не изображения) капчу, чтобы продолжить просмотр.

Какие существуют способы автоматического обнаружения сканеров, пытающихся замаскировать себя как обычных посетителей-людей.

Обновление
Вопрос не в том: Как мне поймать каждого гусеничного устройства. Вопрос: Как максимально повысить вероятность обнаружения гусеничного механизма.

Некоторые пауки действительно хороши, и на самом деле разбирают и понимают html, xhtml, css javascript, VB script и т. Д. ...
У меня нет иллюзий: я не смогу победить их.

Однако вы удивитесь, насколько глупы некоторые сканеры. Лучший пример глупости (на мой взгляд): приведите все URL-адреса в нижний регистр, прежде чем запрашивать их.

А потом есть целая куча сканеров, которые просто «недостаточно хороши», чтобы избежать различных люков.

Ответы [ 11 ]

0 голосов
/ 27 февраля 2019

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

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