Позвольте поисковым ботам проверять свои сайты без идентификаторов сессии

Состояние инструкций Веб-мастера Google

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

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

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

7
задан kenwarner 3 March 2010 в 21:25
поделиться

4 ответа

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

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

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

4
ответ дан 7 December 2019 в 12:20
поделиться

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

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

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

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

0
ответ дан 7 December 2019 в 12:20
поделиться

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

Вместо этого я бы предложил продолжать отслеживать сессии (используя параметры URL в качестве запасного варианта для куки) и добавить тег канонической ссылки (, очевидно, без идентификатора сессии) на каждую страницу. См. статью "Заставьте Google игнорировать JSESSIONID" или обширное видео с участием Мэтта Каттса для обсуждения. Добавление этого тега не очень навязчиво и, возможно, в любом случае может считаться хорошей практикой. Так что, по сути, вы останетесь без какой-либо специальной работы с пауками поисковых систем - что, безусловно, хорошо (tm).

1
ответ дан 7 December 2019 в 12:20
поделиться

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

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

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

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

0
ответ дан 7 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: