Отсеять ботов при клике по ссылке

Статус
В этой теме нельзя размещать новые ответы.

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Приветствую!
Необходимо при клике по ссылке определять кто кликнул по ссылке - бот или живой человек.
И в зависимости от этого отправлять клик либо в уники либо в боты.
В связи с этим, хочу спросить как определить на PHP следующие параметры:

- включен ли js
- имеется ли мышь (курсор мыши)
- есть ли флеш
- принимает ли бот куки (хотя этот параметр принимают многие боты и его легко подделать, насколько я слышал)

Буду рад услышать другие возможные параметры отличия бота от реального посетителя и пример как эти параметры проверить на PHP
 
Во время первого запроса к серверу невозможно определить наличие включённого javascript и флеш, по крайней мере - я не помню, чтоб такое было возможно - на клиенте должен отработать пользовательский сценарий для начала, результаты которого можно использовать для передачи какого-то скрытого параметра, в котором будет закодировано.

насчёт мыши, тоже скорее всего нету ничего, опять таки, на клиенте должно быть определено и передано на сервер.
 
Может странно прозвучит, но опираясь на мысль в посте выше. Если вы ссылку на своем сайте делаете, то можно написать что-то простенькое (или не очень) на jquery/javascript. Что после старта программы именно к этим ссылкам запишет дополнительный параметр в url. Таким образом вы сразу проверите включен ли javascript. В этом коде можете закодировать информацию о поддержке флеша. Насчет курсора мыши я вот лично не уверен возможно ли это вообще проверить. Ну и заодно установить проверочную куку у него и ее добавить в код в url.

Вобщем при старте мы имеем что-то типa:
Код:
<a href="http://domain.com?track=0">LINK</a>
После старта страницы смотрим есть ли flash (скорее всего тут поможет swfobject), тут же можно использовать что-то типо modernizr (ну или его вот собственно), чтобы определить параметры пользовательского агента (как вариант если агент пользователя представляется как известный браузер), проверить поддержку чего-нить из css3 и html5. Далее установить куку (как вариант установить наш информационный код в определенную куку в дополнении к параметру url). Дописать информационный код в url.

После работы скрипта мы имеем:
Код:
<a href="http://domain.com?track=c29tZWRhdGEgZ29lcyBoZXJl">LINK</a>

ну и уже когда запрос придет подобный на сервер, разбираем код (если он вообще пришел без кода, те == 0 то javascript выключен или бот) если таки код установлен то разбираем его и смотрим что есть и чего нет. В довершении если установили куку с кодом, сравниваем и узнаем пришел ли он со страницы прямо или нет, и как у него куки вообще работают.

То что я предлагаю конечно достаточно ограниченный потенциал имеет. И извиняюсь за отсутствия конкретики, просто не совсем уверен что он по сути вопроса.
 
Точно такая же проблема и у меня сейчас.
Только вопрос немного другой, боты же не юзают js? То есть если в ссылке написать onclick="javascript:setrate($id)" ну и функция setrate отправка запроса для сохранения ип адреса и так далее в бд. С человеком сработает, а вот с ботом как? Задействует он onclick?
 
Насчет мыши - есть свойство хтмл OnMouseOver но вопрос как его использовать в данном случае
 
Так есть же событие, редирект при наведении на ссылку курсора мыши с помощью onmouseover - по идее, раз мышь, то уже не бот. А прочие клики, куда-то отправлять в другое место или лучше вообще не отправлять, чтобы под клоакинг не попасть.
 
Так есть же событие, редирект при наведении на ссылку курсора мыши с помощью onmouseover - по идее, раз мышь, то уже не бот. А прочие клики, куда-то отправлять в другое место или лучше вообще не отправлять, чтобы под клоакинг не попасть.
В OnMouseOver всёравно в исходнике видно ссылку и бот может её скопировать вполне
 
В OnMouseOver всёравно в исходнике видно ссылку и бот может её скопировать вполне
Так можно, ссылку подгружать откуда-то, чтобы её не было в коде страницы или шифровать. В общем, варианты разные есть.
 
Так можно, ссылку подгружать откуда-то, чтобы её не было в коде страницы или шифровать. В общем, варианты разные есть.
так по странице можно и без изспользования манипулятора ходить, строго по табам. хотя как быстрый вариант определения мыши подойдёт прототип скрипта
Код:
<script type="text/javascript">

window.addEventListener("load",
    function()
    {
        document.body.addEventListener("mousemove",
            function()
            {
                alert("Welcome real user.")
            },
            false);
    },
    false);

</script>
его можно грамотней оформить с использованием jquery
 
Есть кседант, хрумер, фантомjs, selenium
Знание о существование таких программ, отобьёт у Вас интерес к написанию подобного ПО.
Если конечно результат нужен действительно качественный, то увы придётся заниматься статистическим анализом поведения пользователя.
А не тупо проверить мышь.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху