Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 19:11   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Как отличить пользователя от робота???

Мне стало интересно как юкозивски скрипты отличают пользователей от роботов, кто нибудь знает как это примерно выглядит на php, а ведь как отличаются пользователи от роботов в плане обработки, дайте ссылку на пример или объясните, а то очень хотелось бы такое реализовать на своем сайте
Anubys вне форума Ответить с цитированием
Старый 04.08.2011, 08:51   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

По переменной $_SERVER['HTTP_USER_AGENT'], у поисковиков он например такой
Код:
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 04.08.2011, 09:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А разве робот не может изменить эту переменную, подав серверу ложные данные о себе?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2011, 10:11   #4
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

"честный" робот всегда представляется самим собой, но вообще подменить $_SERVER['HTTP_USER_AGENT'] проще простого, потому это самый примитивный способ вычислить бота.
более действенный способ - javascript, ибо большинство ботов не умеет его обрабатывать. как вариант, изначально пользователь приходит на страницу-заглушку с js-скриптом и если скрипт отработал, тогда редиректим на нужную страницу. простой редирект можно обмануть парсингом и переходом по ссылке, потому нужно проявить фантазию и придумать свой алгоритм проверки... например, на странице-заглушке создаем уникальный идентификатор посетителя, записываем его в базу, затем отдаем идентификатор js-скрипту (ajax), который посылает запрос и ждет ответ. запрос сравниваем с базой данных, если в запросе правильный идентификатор, отдаем адрес для переадресации и что-нить еще, что подтверждает проверенного пользователя, если запрос не удался, идентификатор не подошел и т.п., значит скорее всего перед нами бот.
в любом случае, не стоит переусердствовать, так как те же яндекс и гугль сперва представляются собой, а потом с другого IP представляются браузером и если содержимое страниц будет отличаться, поисковик отметит это как клоакинг и засунет такую страницу куда-то очень далеко.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 04.08.2011, 12:56   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
А разве робот не может изменить эту переменную, подав серверу ложные данные о себе?
Может, но зачем ему это!?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 04.08.2011, 13:07   #6
8oOoRPM
Форумчанин
 
Регистрация: 12.11.2010
Сообщений: 146
По умолчанию

если по агенту то удобно через htaccess сразу делать

Код:
# deny access to evil robots site rippers offline browsers and other nasty scum  -- start
 RewriteBase /
 RewriteCond %{HTTP_USER_AGENT} .*BlackWidow.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Bot\ mailto.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*ChinaClaw.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Custo.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*DISCo.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Download\ Demon.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*eCatch.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*EirGrabber.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*EmailSiphon.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*EmailWolf.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Express\ WebPictures.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*ExtractorPro.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*EyeNetIE.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*FlashGet.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*GetRight.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*GetWeb!.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Go!Zilla.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Go-Ahead-Got-It.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*GrabNet.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Grafula.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*HMView.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*HTTrack.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Image\ Stripper.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Image\ Sucker.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Indy\ Library.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*InterGET.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Internet\ Ninja.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*JetCar.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*JOC\ Web\ Spider.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*larbin.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*LeechFTP.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Mass\ Downloader.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*MIDown\ tool.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Mister\ PiX.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Navroad.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*NearSite.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*NetAnts.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*NetSpider.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Net\ Vampire.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*NetZIP.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Octopus.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Offline\ Explorer.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Offline\ Navigator.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*PageGrabber.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Papa\ Foto.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*pavuk.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*pcBrowser.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*RealDownload.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*ReGet.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*SiteSnagger.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*SmartDownload.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*SuperBot.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*SuperHTTP.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Surfbot.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*tAkeOut.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Teleport\ Pro.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*VoidEYE.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Web\ Image\ Collector.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Web\ Sucker.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebAuto.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebCopier.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebFetch.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebGo\ IS.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebLeacher.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebReaper.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebSauger.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Website\ eXtractor.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Website\ Quester.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebStripper.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebWhacker.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WebZIP.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Wget.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Widow.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*WWWOFFLE.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Xaldon\ WebSpider.*  [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} .*Zeus.*  [NC]
 RewriteRule ^.* - [F,L]
8oOoRPM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отличить тролля от идиота? Levsha100 Свободное общение 20 20.01.2011 07:55
Отличить бота от пользователя Alex Cones Свободное общение 18 16.04.2010 20:20
как отличить формулу от числа Реланиум Microsoft Office Excel 5 21.11.2006 20:14
как в каталоге отличить файлы от папок. Alar Общие вопросы Delphi 0 29.10.2006 10:39