Pull to refresh

Comments 35

UFO just landed and posted this here
>Один — на серверной стороне (в этом есть какой-то смысл). Анализ заголовков. Смешно, даже останавливаться не буду.
А что еще Вы предлагаете анализировать на сервере? (не думаю что на tcp уровне он будет отличаться от обычного броузера)

>Пришел запрос, сервер на него ответил и отдал все, что от него просили. Всё, данные получены, в полном обьеме — теперь их «хозяин» тот, кто их запросил и получил — что хочет с ними, то и делает.

ну так грабят не одну страничку с сайта а раздел или весь сайт. Определив парсер можно временно забанить ip, что уже делает стоимость парсинга выше. Это ведь типичная ситуация меча и щита, причем щит публичный и любой его может рассмотреть. В этой ситуации не может быть идеальных решений.

А вообще конечно идем на https://github.com/ariya/phantomjs/issues и выбираем подходящие для детекта.
UFO just landed and posted this here
не думаю что на tcp уровне он будет отличаться от обычного броузера

Из TCP можно узнать операционную систему и сверять её с user agent.

Не понимаю как это может мне помешать открыть следующий линк и так дальше. Все что происходит на клиентской стороне можно отловить и хакнуть.
P/s если не хотите что бы вас нещадно скрапили, сделайте фид и забудьте о подобных проблемах. Ибо если его нет вас все равно будут скрапить.
ну так грабят не одну страничку с сайта а раздел или весь сайт. Определив парсер можно временно забанить ip, что уже делает стоимость парсинга выше.

Грабить могут и в личных целях, чтобы уже потом оптом на одной странице проанализировать товар и выбрать нужное, а не открывать кучу страниц в браузере и прыгать между этими страницами для стравнения нужного товара.
Сам так часто делаю.

А смысл? Никак не можете примириться с тем, что отдавая данные клиенту вы отдаете их ему и уже он властен над ними? Не понятна ситуация, при которой вы потратите кучу сил и проверок на то, чтобы сохранить данные от хакера, когда чувак с расширением на хроме или 10 китайцев так же распарсят ваш сайт.
Или это будет целая серия :D
"Определяем китайцев", "определяем юзер-скрипты", "определяем что пользователь не запомнил данные после посещения сайта", "вставляем ватермарки в body"?

А есть ли смысл бороться именно с phantom? Ведь ботов можно написать на чем угодно.
UFO just landed and posted this here
Иногда, есть. Пример — браузерные игры, где прокачка персонажей ботами убивает у других игроков интерес к игре.
UFO just landed and posted this here
Тут, кстати, самыми проблемными являются не js боты, а те, которые тупо кликают мышью по окну честно открытого браузера, ориентируясь по заранее записанным фрагментам картинки.
С яваскриптовыми ботами можно как-то бороться. А вот таких отличить от человека вообще не получается. Там при записи сценария ты показываешь прямоугольную область экрана и координаты клика отсчитываются от неё. Когда скрипт запускается он повторяет такой клик (ему еще можно сказать слегка рандомизировать клики — прибавлять маленькое случайное число к обоим координатам). Если скрипт не находит на экране заданную область, он просто перестает работать и сообщает о проблеме.
Ловить таких очень дорого и сложно.
Я в своё время пользовался sikuli для автоматизации игрового процесса. А что рекомендуют использовать в современных реалиях?
Вот не знаю. Я как раз занимался борьбой с такими ботами :)
У меня самоделка на ардуине+серва, жмет клавиши для автоматизации игрового процесса. Работает под любой ОС, и даже с теми играми где защита от мышиных кликеров (в т.ч. игровых мышей и клавиатур) и ввод от winapi игнорируется и принимается только, как я предполагаю, через DirectInput.
Благодаря механике, и таймеру с рандомным смещением выглядит 100% натурально. За исключением, разве что, что жмякает по клавиатуре сутками напролет.
Еще не забанили :)
внедрение бота в код игры(ingame, autoit), или вовсе без игры (OOG — out of game, c++,c#,delphi), но все эти боты ломаются при обновлениях игры или ее упаковке, поэтому интересуют конкретные инструменты, как вы уже выше сказали «ява+скрипты», при которых можно научить бота распознавать определенные формы. и да:
Ловить таких очень дорого и сложно.
Страниц может быть 10 млн. Тогда можно остановить краулинг уже на первом десятке.
UFO just landed and posted this here

Одной из целей определения бота может быть известный в узких кругах клоакинг. Когда боту поисковой системы не показывается агрессивная реклама, за которую поисковики понижают в поиске. У поисковых систем есть специальные боты для клоакинг-детекта, которые максимально маскируются под человека, поэтому проверка по юзер-агенту здесь не поможет. А вот комплекс специфических технических уловок — вполне.

Меня удивляет, почему автор поста считает, что в браузере должен быть включён джаваскрипт. Стандарты HTML этого не требуют, и я как пользователь с ними солидарен. Отключаю везде, где только можно. Если запрещают смотреть без них, выкачиваю страницу тем самым phantom.js
Слава богам, гугл ещё не разучился работать без javascript, и опцию saved copy всё ещё предоставляет.
Помимо, действительно глючного PhantomJS, есть ещё CEF. Chromium Embedded Framework. Вот где благодать.
UFO just landed and posted this here
UFO just landed and posted this here
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
UFO just landed and posted this here
UFO just landed and posted this here
Да, в переводе есть примечание о том что кастомная сборка фантома обойдет все известные сборщику методы детекта.
Sign up to leave a comment.

Articles