HTTP request header: Origin?

Может быть, кто-нибудь в этом разбирался до меня?



Цель — на уровне сервера отличить обычные клики по a href, сделанные живыми людьми, от ajax- и других хитрых запросов, сделанных ботами-пауками или пользовательскими скриптами в браузерах.



Можно ли в общем виде считать, что наличие заголовка Origin — достаточный повод считать запрос точно не соответствующим критерию «обычный клик по обычной ссылке»?



Задача — отследить и пресечь скликивание баннеров.
  • Вопрос задан
  • 8115 просмотров
Пригласить эксперта
Ответы на вопрос 5
TheHorse
@TheHorse
> Можно ли в общем виде считать, что наличие заголовка Origin — достаточный повод считать запрос точно не соответствующим критерию «обычный клик по обычной ссылке»?

Нет, нельзя. Боты делают точно такие же заголовки.

Копайте в сторону статистического анализа популяции запросов.
Ответ написан
@egorinsk
Для отличения ботов от людей можно использовать (так как у вас мутно описаны подробности задачи, пишу все сразу): проверку поддержки Cookie, Expires, Last-Modified, проверку поддержки HTTPS, проверку возможности и правильности исполнения JS/Flash-кода, проверку соответствия версии юзер-агенты и поддерживаемым возможностям, проверку загрузки статических ресурсов, проверку информации о локальных сетевых интерфейсах через Java-апплет, поведенческий анализ (анализ записываемых действий пользователя: например, пользователь должен подвести мышь или указатель фокуса к ссылке, прежде чем перейти по ней), статистический анализ (выявление тенденций), анализ источников запросов (например, запросы из Китая на русскоязычный сайт; запросы с Ip из спам-листов; запросы с IP дата-центров; запросы с компьютеров с открытыми портами прокси), сопоставление клиентской информации с параметрами запроса (например, яваскриптом видна русская локаль и московский часовой пояс на клиенте, а запрос приходит с китайского IP с немецкой локалью в заголовках = используется прокси + средство подмены заголовков).

Для предотвращения обхода системы необходимо периодически менять анализируемые факторы (чтобы боты, приспособившиеся к старому набору факторов, выдали себя).

Умная система учитывает все эти факторы, накапливая и анализируя их в соответствие с набором правил. Вряд ли вы осилите сделать тот же объем работы, что например делает команда яндекс-рекламы. Но даже такую систему, как мне кажется, при желании можно обойти, если понимать, как она работает. И если например привлечь к этому делу человека вроде egorinsk и дать ему много денег.

Предложенный вами способ примитивен и обходится несколькими строчками кода.
Ответ написан
Комментировать
@tangro
наивно будет считать наличие\отсутствие заголовка origin признаком хоть-бы чего.
Ответ написан
Комментировать
@rPman
Соберите/постройте статистику кликов с пометкой человек/вероятно бот… постройте табличку: записи — клики, атрибуты — параметры кликов (ресурс, время с начала сессии, с предыдущего клика, наличие заголовков,..)

Затем подключите математический аппарат для анализа этой таблички (можете нейронную сеть обучить на ее основе).
Ответ написан
Комментировать
bost84
@bost84
токены могут значительно усложнить жизнь ботам
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы