Обнаружение пауков или браузеров с включенными файлами cookie - PullRequest
3 голосов
/ 20 августа 2010

Множество пауков / сканеров посещают наш новостной сайт.Мы полагаемся на услуги GeoIP для определения физического местонахождения наших посетителей и предоставления им соответствующего контента.Поэтому мы разработали модуль с функцией module_init(), который отправляет IP в MaxMind и устанавливает файлы cookie с информацией о местоположении.Чтобы избежать отправки запросов при каждом просмотре страницы, мы сначала проверяем, установлен ли файл cookie, а если нет, то отправляем информацию и устанавливаем файл cookie.Это хорошо работает с постоянными клиентами, но не работает так же хорошо, когда паук ползает по сайту.Каждый просмотр страницы запрашивает запрос к MaxMind, и это действие становится несколько дорогим.Мы ищем решение, позволяющее идентифицировать сканеры или, если проще, легальные браузеры с включенными файлами cookie и запрашивать MaxMind только тогда, когда это полезно.

Ответы [ 3 ]

3 голосов
/ 21 августа 2010

Что ж, если честно, не нужно ничего делать. Я хотел бы предложить, что я сделал в прошлом, чтобы бороться с той же самой проблемой. используйте скрипт обнаружения браузера, существует тон классов для обнаружения браузеров. Затем сравните браузер с БД известных браузеров. Затем, если в вашем списке есть браузер, разрешите звонок в службу, если не используете сценарий «лучшего предположения».

Под этим я подразумеваю что-то вроде этого:

Общий класс поиска IP-адресов

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

Это немного нервно, я знаю, я просто надеюсь, что вы понимаете, что я пытаюсь здесь сказать.

Реальный ответ заключается в том, что нет простого ответа или 100% правильного ответа на этот вопрос, я сделал много сайтов с такой же ситуацией и сошел с ума, пытаясь выяснить это, и это так же близко к идеалу, как и я прийти. Поскольку 99% большинства сканеров ligit будут иметь такое значение:

$_SERVER['HTTP_USER_AGENT'] = 'Googlebot', 'Yammybot', 'Openbot', 'Yahoo'... etc.

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

Я действительно надеюсь, что это поможет, как я сказал, что здесь нет реального ответа, по крайней мере, не то, что я обнаружил, что он на 100%, это все равно, что узнать, находится ли пользователь в руках в эти дни, вы можете получить 99 %, но никогда не 100%, и всегда получается, что клиент использует тот 1%, который не работает.

1 голос
/ 20 августа 2010

У пауков и сканеров обычно есть отдельный пользовательский агент, может быть, вы можете отфильтровать их?

0 голосов
/ 04 сентября 2010

Обнаружение веб-сканеров (как законных, так и гнусных) можно выполнить с помощью API веб-сканера ATL по адресу www.atlbl.com

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