Разрешить поисковым роботам сканировать ваши сайты без идентификаторов сеансов - PullRequest
7 голосов
/ 05 февраля 2010

Google Руководство для веб-мастеров Штат

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

Мой сайт ASP.NET 1.1 использует настраиваемую аутентификацию / авторизацию и довольно сильно полагается на руководства по сеансам (аналогично этот подход ). Я беспокоюсь о том, что пропуск трафика, не отслеживаемого в сеансах, либо нарушит мой существующий код, либо создаст уязвимости безопасности.

Какие существуют лучшие практики, позволяющие роботам, не отслеживаемым в сеансе, сканировать сайт, отслеживаемый в обычном сеансе? И есть ли другие способы обнаружения поисковых роботов, кроме проверки пользовательского агента (я не хочу, чтобы люди обманывали себя как googlebot, чтобы обойти отслеживание моих сессий)?

Ответы [ 4 ]

4 голосов
/ 25 февраля 2010

Правильный способ обнаружения ботов - по записи хоста (Dns.GetHostEntry). Некоторые хромые роботы требуют, чтобы вы отслеживали IP-адреса, но популярные, как правило, этого не делают. Запросы Googlebot приходят от * .googlebot.com. После того, как вы получите запись хоста, вы должны проверить IPHostEntry.AddressList, чтобы убедиться, что она содержит исходный IP-адрес.

Даже не смотрит на пользовательский агент при проверке роботов.

Смотри также http://googlewebmastercentral.blogspot.com/2006/09/how-to-verify-googlebot.html

1 голос
/ 27 февраля 2010

Прежде всего: у нас были некоторые проблемы с простым удалением JSESSIONID из ответов на известные поисковые системы. В частности, создание нового сеанса для каждого запроса вызывало ошибки OutOfMemoryErrors (хотя вы не используете Java, сохранение состояния для тысяч активных сеансов, безусловно, является проблемой для большинства или всех серверов / сред). Это можно решить, сократив время ожидания сеанса (только для сеансов бота - если это возможно). Так что, если вы хотите пойти по этому пути, будьте осторожны. И если вы делаете, нет необходимости делать поиск DNS. Здесь вы не защищаете ничего ценного (например, First Click Free от Google). Если кто-то притворяется ботом, это нормально.

Вместо этого я бы предпочел сохранить отслеживание сеансов (используя параметры URL в качестве запасного варианта для файлов cookie) и добавить тег канонической ссылки (<link rel="canonical" href="..." />, очевидно, без самого идентификатора сеанса) к каждому стр. См. " Сделать Google Игнорировать JSESSIONID " или подробное видео с участием Мэтта Каттса для обсуждения. Добавление этого тега не очень навязчиво и в любом случае может считаться хорошей практикой. Таким образом, в основном вы бы закончили без какой-либо специальной обработки пауков поисковой системы - что, безусловно, является хорошей вещью (тм).

0 голосов
/ 04 марта 2010

Если спуфинг - ваша главная задача, вы ошибаетесь в безопасности. Вы не должны давать роботам больше прав, чем пользователям, скорее наоборот (поэтому пользователи получают логины, а роботы - robots.txt).

Если вы собираетесь предоставить кому-то особые привилегии без аутентификации, он по своей природе открыт для подмены. IP-адреса могут быть подделаны. Связь между сервером и клиентом может быть подделана. И так далее.

Если вы полагаетесь на отслеживание файлов cookie для анализа вредоносного поведения, вам необходимо это исправить. Должно быть достаточно легко получить хорошее понимание, не требуя, чтобы злоумышленник идентифицировал себя.

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

0 голосов
/ 02 марта 2010

Полагаю, ваш подход к проблеме не совсем верен. Вы не должны полагаться на механизм отслеживания сеансов для определения прав доступа, регистрации злоумышленников, обнаружения ботов и т. Д.

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

  2. Вредоносные пользователи, скорее всего, могли бы обойти отслеживание вашего сеанса, не используя (или не настраивая) куки, рефереры, параметры URL-адреса и т. Д. Таким образом, отслеживание сеанса здесь не может быть надежно использовано, просто ведите простую регистрацию любого запроса с его исходным IP. Позже вы сможете проанализировать собранные данные, чтобы обнаружить подозрительную активность, попытаться найти пользователей с несколькими IP-адресами и т. Д. Этот анализ сложен и не должен выполняться во время выполнения.

  3. Чтобы обнаружить ботов, вы можете выполнить обратный поиск DNS по собранным IP-адресам. Опять же, это может быть сделано в автономном режиме, поэтому без снижения производительности. Как правило, содержание обслуживаемой страницы не должно зависеть от того, является ли посетитель ботом или не прошедшим проверку подлинности пользователем-человеком (поисковые системы по праву считают такое поведение обманом).

...