Разрешить Google обходить проверку CAPTCHA - разумно или нет? - PullRequest
3 голосов
/ 12 апреля 2010

Мой веб-сайт имеет поиск в базе данных; заполнение капчи дает вам 5 минут времени поиска. Существует также некоторый пользовательский код для обнаружения любых автоматизированных скриптов. Я делаю это, потому что не хочу, чтобы кто-то извлекал данные из моего сайта.

Проблема в том, что Google не видит результаты поиска при сканировании моего сайта. Если кто-то ищет строку, которая присутствует в результате поиска, я бы хотел, чтобы он нашел эту страницу, покинув ее.

Для меня очевидным решением является использование переменной PHP $_SERVER['HTTP_USER_AGENT'] для обхода CAPTCHA и специального кода безопасности для ботов Google. Мой вопрос: разумно это или нет?

Люди могли бы затем использовать кэш Google для просмотра результатов поиска, не заполняя CAPTCHA, но будут ли собственные методы обнаружения сценариев Google препятствовать их извлечению данных из этих страниц?

Или люди могли бы каким-то образом заставить $_SERVER['HTTP_USER_AGENT'] выглядеть как Google, чтобы обойти меры безопасности?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 12 апреля 2010

Или люди могли бы сделать так, чтобы $ _SERVER ['HTTP_USER_AGENT'] выглядел как Google, чтобы обойти меры безопасности?

Определенно. Пользовательский агент смехотворно легко подделать. Смотрите, например User Agent Switcher для Firefox . Для спам-бота также легко установить заголовок пользовательского агента для бота Google.

Хотя, возможно, это все еще стоит того. Я бы сказал, просто попробуйте и посмотрите, каковы результаты. Если у вас возникли проблемы, вам, возможно, придется подумать о другом.

Дополнительным способом распознавания бота Google может быть диапазон IP-адресов, которые он использует. Я не знаю, использует ли бот определенные диапазоны IP-адресов - возможно, это не тот случай, вам придется выяснить.

Обновление: представляется возможным проверить Google Bot, проанализировав его IP. От Google Webmaster Central: как проверить Googlebot

Указание веб-мастерам использовать DNS для проверки в каждом конкретном случае кажется наилучшим способом. Я думаю, что рекомендуемый метод - сделать обратный поиск DNS, убедиться, что имя находится в домене googlebot.com, а затем выполнить соответствующий прямой поиск DNS-> IP, используя это имя googlebot.com; например:

host 66.249.66.1 1.66.249.66.in-addr.arpa указатель доменного имени crawl-66-249-66-1.googlebot.com.

host crawl-66-249-66-1.googlebot.com crawl-66-249-66-1.googlebot.com имеет адрес 66.249.66.1

Я не думаю, что достаточно просто выполнить обратный поиск DNS, потому что спуфер может настроить обратный DNS, чтобы он указывал на crawl-a-b-c-d.googlebot.com.

1 голос
/ 12 апреля 2010

параметр $_SERVER['HTTP_USER_AGENT'] небезопасен, люди могут подделать его, если они действительно хотят получить ваши результаты. Ваше решение является деловым, в основном вы хотите снизить уровень безопасности и потенциально позволить людям / ботам просматривать ваш сайт или хотите, чтобы ваши результаты были скрыты от Google.

0 голосов
/ 10 января 2018

Одно решение является безопасным, имеет небольшую базу данных Geo, отсортированную по ASN, блокирует плохого бота ASN (прокси, сервер, хостинг-провайдер как OVH) и позволяет небольшому боту (Google, Bing, Yahoo), GSM Mobile ASN, как Orange , SFR Vodafone ... Просто идея:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...