Я почти уверен, что многие люди думали об этом, но по какой-то причине я не могу найти ее с помощью поиска Google и StackOverflow.
Я хочу сделать невидимую ссылку (занесенную в черный список robots.txt) на CGI- или PHP-страница, которая будет «ловить» вредоносных ботов и пауков. Пока что пробовал:
Пустые ссылки в теле:
В большинстве случаев это работает довольно хорошо, с двумя небольшими проблемами:
Проблема: Ссылка является частью тела документа. Несмотря на то, что на него практически невозможно щелкнуть мышью, некоторые посетители все равно случайно нажимают на него во время навигации по сайту с помощью Tab и Enter . Кроме того, если они, например, копируют и вставляют страницу в текстовый редактор или программу электронной почты, ссылка-ловушка копируется вместе и иногда даже становится доступной для кликов (некоторые программы не любят пустые теги
и скопируйте href как содержимое тега).
Невидимые блоки в теле:
Это устраняет проблему с навигацией с клавиатуры, по крайней мере, в протестированных мной браузерах. Ссылка фактически недоступна при обычном отображении страницы, но все еще полностью видна для большинства роботов-пауков с их текущим уровнем интеллекта.
Проблема: Ссылка все еще является частью DOM. Если пользователь скопирует и вставит содержимое страницы, оно появится снова.
Внутри блоков комментариев:
trap ->
Это эффективно удаляет ссылку из DOM страницы. Что ж, технически комментарий по-прежнему является частью DOM, но он обеспечивает желаемый эффект, заключающийся в том, что соответствующие пользовательские агенты не будут генерировать элемент A, поэтому это не настоящая ссылка.
Проблема: Большинство пауков боты в настоящее время достаточно умны, чтобы анализировать (X) HTML и игнорировать комментарии. Я лично видел ботов, которые используют объекты Internet Explorer COM / ActiveX для анализа (X) HTML и извлечения всех ссылок через XPath или Javascript. Эти типы ботов не обманом переходят по гиперссылке-ловушке.
Я использовал метод № 3 до прошлой ночи, когда меня поразила стая ботов, которые, кажется, действительно избирательно выбирают, по каким ссылкам они переходят. Теперь я вернулся к методу № 2, но все еще ищу более эффективный способ.
Какие-нибудь предложения или другое решение, которое я пропустил?