Comments 35
А что еще Вы предлагаете анализировать на сервере? (не думаю что на tcp уровне он будет отличаться от обычного броузера)
>Пришел запрос, сервер на него ответил и отдал все, что от него просили. Всё, данные получены, в полном обьеме — теперь их «хозяин» тот, кто их запросил и получил — что хочет с ними, то и делает.
ну так грабят не одну страничку с сайта а раздел или весь сайт. Определив парсер можно временно забанить ip, что уже делает стоимость парсинга выше. Это ведь типичная ситуация меча и щита, причем щит публичный и любой его может рассмотреть. В этой ситуации не может быть идеальных решений.
А вообще конечно идем на https://github.com/ariya/phantomjs/issues и выбираем подходящие для детекта.
P/s если не хотите что бы вас нещадно скрапили, сделайте фид и забудьте о подобных проблемах. Ибо если его нет вас все равно будут скрапить.
ну так грабят не одну страничку с сайта а раздел или весь сайт. Определив парсер можно временно забанить ip, что уже делает стоимость парсинга выше.
Грабить могут и в личных целях, чтобы уже потом оптом на одной странице проанализировать товар и выбрать нужное, а не открывать кучу страниц в браузере и прыгать между этими страницами для стравнения нужного товара.
Сам так часто делаю.
А смысл? Никак не можете примириться с тем, что отдавая данные клиенту вы отдаете их ему и уже он властен над ними? Не понятна ситуация, при которой вы потратите кучу сил и проверок на то, чтобы сохранить данные от хакера, когда чувак с расширением на хроме или 10 китайцев так же распарсят ваш сайт.
Или это будет целая серия :D
"Определяем китайцев", "определяем юзер-скрипты", "определяем что пользователь не запомнил данные после посещения сайта", "вставляем ватермарки в body"?
Ловить таких очень дорого и сложно.
Благодаря механике, и таймеру с рандомным смещением выглядит 100% натурально. За исключением, разве что, что жмякает по клавиатуре сутками напролет.
Еще не забанили :)
Ловить таких очень дорого и сложно.
Одной из целей определения бота может быть известный в узких кругах клоакинг. Когда боту поисковой системы не показывается агрессивная реклама, за которую поисковики понижают в поиске. У поисковых систем есть специальные боты для клоакинг-детекта, которые максимально маскируются под человека, поэтому проверка по юзер-агенту здесь не поможет. А вот комплекс специфических технических уловок — вполне.
P.S. Я встречал всего одно бота, с которым пришлось реально бороться — злобный WebIndex.
Именно сразу, никаких таймаутов между запросами. Бомбилка еще та была.
а что сложного? либо iptables:
-A INPUT -i venet0:0 -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -m comment --comment "nginx drop hits" -j DROP
-A INPUT -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -m comment --comment "nginx" -j ACCEPT
либо использовать модуль nginx ngx_http_limit_conn_module
Определяем Phantom-ных ботов