|
|
|
| Собственно, вопрос. Да, надо парсить user_agent на всякие нехорошие слова, типа, yandex, bot, crawler и т.д. но, что делать, если боты подделывают user_agent и там нет всяких нехороших слов?
Например, вот такие встречаются:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Firefox/11.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko
Боты это или люди.. вот в чем вопрос.
Как распознать бота, если он может подделывать user_agent? | |
|
|
|
|
|
|
|
для: Enter
(30.10.2014 в 11:39)
| | Можно определить "сервис-код" на основе IP адреса.
Если вкратце, то по IP адресу можно определить владельца, а по нему уже определить способ использование адресов. Если владелец - провайдер домашнего интернета, то, скорее всего, это самый обычный живой посетитель.
Если владелец - хостинговая компания, значит запрос пришел с какого-то сервера. Обычные пользователи не ходят в интернет таким образом.
Способ ненадежный, так как запросы с сервера вполне могут быть пользовательскими, если сервер выступает в качестве VPN прокси. Или провайдер домашнего интернета одновременно предоставляет хостинг и при этом не отделяет абонентские ip адреса от адресов, назначаемых серверам (сомнительно, конечно, но если пофантазировать, то вариант вполне себе). Или ещё какая-нибудь более извращённая конфигурация.
Есть ещё куча других нюансов, связанных с таким способом определения "человечности". Чуть более подробно описано в ссылке, что я дал выше.
Ещё можно отслеживать загрузку внедряемых на страницу объектов. Например, вставить на страницу однопиксельный прозрачный gif. Если страница загрузилась, а картинка - нет, значит кто-то загрузил страницу скриптом. Никто не заморачивается выкачиванием внедрённого контента. Но этот вариант тоже не на 100% надежен. Он не сработает при отключенных картинках или агрессивном кешировании. Или если браузер не поддерживает внедрённый контент (консольные браузеры).
Так же способ не сработает на продвинутых ботах, использующих какой-нибудь selenium или настоящий браузер напрямую. | |
|
|
|
|
|
|
|
для: Саня
(17.11.2014 в 17:09)
| | Спасибо. Почитаю про сервис-коды. а вот второй метод как-то не годится. может, куки буду использовать, но пока что отложил эту задачу до лучших времен. 70 - 80 (может, 60)% ботов отсекаю. может, потом будет какое-то решение, как распознать поддельный браузер. | |
|
|
|