Какие есть варианты для обнаружения веб-сканеров, которые не хотят быть обнаруженными?
(Я знаю, что перечисление методов обнаружения позволит умному программисту-невидимке сделать лучшего паука, но я не думаю, что мы когда-либо сможем блокировать умных невидимок, в любом случае, только тех, которые допускают ошибки. )
Я не говорю о хороших сканерах, таких как googlebot и Yahoo! Slurp.
Я считаю, что бот хорош, если он:
- идентифицирует себя как бот в строке агента пользователя
- читает robots.txt (и подчиняется ему)
Я говорю о плохих сканерах, которые прячутся за обычными пользовательскими агентами, используют мою пропускную способность и никогда не дают мне ничего взамен.
Есть несколько люков, которые можно построить Обновлен список (спасибо Крис, gs) :
- Добавление каталога, указанного в списке (помеченного как запрещенный), только в файле robots.txt,
- Добавление невидимых ссылок (возможно помеченных как rel = "nofollow"?),
- style = "display: none;" по ссылке или родительскому контейнеру
- расположен под другим элементом с более высоким z-индексом
- определить, кто не понимает заглавных букв,
- определяет, кто пытается публиковать ответы, но всегда пропускает капчу.
- обнаружение запросов GET к ресурсам, доступным только для POST
- обнаружение интервала между запросами
- определить порядок запрашиваемых страниц
- определить, кто (последовательно) запрашивает ресурсы https через http
- определяет, кто не запрашивает файл изображения (это в сочетании со списком пользовательских агентов известных браузеров с поддержкой изображений работает на удивление приятно)
Некоторые ловушки будут срабатывать как «хорошими», так и «плохими» ботами.
Вы можете объединить их с белым списком:
- срабатывает ловушка
- Это запрос
robots.txt
?
- Это не вызывает другую ловушку, потому что она повиновалась
robots.txt
Еще одна важная вещь здесь:
Пожалуйста, рассмотрите слепых людей, использующих программы для чтения с экрана: дайте людям способ связаться с вами, или решите (не изображения) капчу, чтобы продолжить просмотр.
Какие существуют способы автоматического обнаружения сканеров, пытающихся замаскировать себя как обычных посетителей-людей.
Обновление
Вопрос не в том: Как мне поймать каждого гусеничного устройства. Вопрос: Как максимально повысить вероятность обнаружения гусеничного механизма.
Некоторые пауки действительно хороши, и на самом деле разбирают и понимают html, xhtml, css javascript, VB script и т. Д. ...
У меня нет иллюзий: я не смогу победить их.
Однако вы удивитесь, насколько глупы некоторые сканеры. Лучший пример глупости (на мой взгляд): приведите все URL-адреса в нижний регистр, прежде чем запрашивать их.
А потом есть целая куча сканеров, которые просто «недостаточно хороши», чтобы избежать различных люков.