Накручивание кликов, защита от ботов.

Sluggard

Новичок
Накручивание кликов, защита от ботов.

Есть баннерная система. Следует защитить ее так, чтобы количество кликов не накручивалось ботами (программами).

Предполагается, что у пользователя разрешены cookie и javascript.

Какие могут быть решения/предложения?
 

Novar

Guest
Куку ставь что кликнул этот юзер
и записывай IP
 

IntenT

SkyDiver
Novar
Боты умеют куки читать и писать. это не защита

Защититься можно относительно. анализируя логи и вычисляя аномальную активность. блокируя клики с анонимных прокси-серверов (надо иметь их список).
 

Sluggard

Новичок
Возникла идея (возможно бредовая).
1. Генерируем функцию f()
2. Генерируем случайное число x
3. Вычисляем f(x)=Y и сохраняем Y в переменной сессии
4. Генерируем javascript, который должен вычислять функцию f(x) и отдавать результат скрипту.
5. Отдаем сгенерированный код броузеру.
6. Наш javascript вычисляет значение функции f(x) и возвращает скрипту результат
7. Скрипт сверяет значение вычисленное javascript'м с тем, что хранится в сессии
...

Отсюда вопросы:
1. Насколько легко/сложно написать бота, который выдерит javascript-функцию и вычислит ее значение?
 

neko

tеam neko
звучит приятно
вот только непонятно что ты подразумеваеш под "вычислит ее значение"?

т.е. запустит любой интерпретатор JS? ;-)
нет не трудно

и вообще с ботами которые пишутся "под тебя" боротся довольно трудно кроме как модерацией
 

Sluggard

Новичок
Фанат
Спасибо, но я читал! У тебя есть какие-то возражения против использования сессий в данном случае?
 

Paxan

Новичёк
1. Ввод цифр с картинки перед голосованием (неудобно юзеру).
2. Запись айпи (плохо для тех, у кого один айпи допустим на фирму/организацию/дет. сад =) )
3. Ручная модерация, путём просмотра логов и выявления накрутки интуитивно (неудобно для вебмастера)
 

Sluggard

Новичок
1. Ввод цифр с картинки перед голосованием (неудобно юзеру).
Читай вопрос целиком. Или ты предлагаешь, чтобы пользователь вводил циферки после клика по банеру? :)
 

Sluggard

Новичок
т.е. запустит любой интерпретатор JS? ;-)
Да, именно это я имел в виду. :(

Но может будут еще какие-нибудь предложения? Меня интересует любое нестандартное, но автоматизированное, способное заставить рядового программиста почесять затылок и порыться в библиотеке.

-~{}~ 10.03.05 22:59:

возражения открытым текстом изложены по ссылке, которую я дал
Да? Что-то я не нахожу там заголовка "Возражения Фаната". :) Впрочем, как и других авторов.
 

Фанат

oncle terrible
Команда форума
читай по слогам:
помните, что сессии можно применять только тогда, когда они нужны самому пользователю, а не для того, чтобы чинить ему препятствия. Ведь он в любой момент может избавиться от идентификатора!
Скажем, при проверке на то, что заполняет форму человек, а не скрипт, пользователь сам заинтересован в том, чтобы сессия работала - иначе он не сможет отправить форму! А вот для ограничения количества запросов к скрипту сессия уже не годится - злонамеренный скрипт просто не будет возвращать идентификатор.
 

Paxan

Новичёк
Автор оригинала: Sluggard
Читай вопрос целиком. Или ты предлагаешь, чтобы пользователь вводил циферки после клика по банеру? :)
Немного по диагонали прочитал, каюсь, спешил. Этот вариант конечно идиотский, зато защита 100% =)

Наиболее оптимальный вариант, как мне кажется, это будет засчитывать один клик с одного айпи + проверка этого айпи на нахождение на нём прокси (пробовать получить коннект к этому айпи по обычным для прокси портам(80,8080, 3128, етс) и отправив по нему запрос попытатся получить свою страницу (ресурсоёмко, особенно если сеть большая; хотя это можно делать отдельным процессом допустим раз в час)) + смотреть отношение количество показов / клик. Вывести среднее и смотреть по равным промежуткам (по часовым), когда такое отношение приближается к единице - смотреть вручную.

PS: Я не совсем бред написал? =)
 

t3[0one]

Новичок
есле ета прога будет менять ip через анонимную прокси и чистить куки..не чего не сделаешь помойму )
А так я думаю записывать ip и сверять с последними кликами ну и порты проверять ) обычно прокся не на 80 порту(тока как проверять хз ) !
имхо )
 

c4m0r

Guest
Может глупость скажу но это чертовски бредово заниматься проверками ip. Кто захочет один чёрт нагнёт такую систему..
Проверка на анонимность это как правило для большой такой структуры (yandex.ru не допускает анонимные ip).. а вот разработать общую статистику для баннерной системы или для голосования..можно.. К примеру брать количество голосов(кликов) вчера и позовчера и прибовлять 10 процентов остальное отсеевать( ну если конечно у вас большой прирост пользователей можно больше поставить процент макимального прироста) и так проверять.. ну а уж если тенденция то смотреть логи...
 

Sluggard

Новичок
читай по слогам:
Я и по словам не плохо читаю. :)

Ты либо невнимательно прочитал, что я написал, либо невнимательно читал цитату, которую сам привел. Я не собираюсь в переменной сессии хранить, был ли пользователь здесь в ближайшее время. После сверки результата вычисления функции php-скриптом и того, что вернется от клиета, сессия уничтожится с редиректом на правильный сайт или страничку с надписью об ошибке.

-~{}~ 11.03.05 14:22:

У меня не какое-нибудь элементарное голосование, а баннерная система! Миллионы IP-адресов, миллиарды кликов... Сколько должно быть модераторов?
 

inTox

вёбных дел мастер
надо снимать биометрические параметры юзера - например степень запущенности болезни паркинсона в виде средней кривизны траектории мыша за последние сотню пойнтов. особо продвинутые могут замерять индивидуальный среднесуточный коэффициент замедления при наведении на линк. Всю эту бодягу вешаем на SetTimeout() и концы в воду.

P.S. хардкорные мышатники. танкисты и дигитайзеры идут лесом...
 
Сверху