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