Реализация АнтиФлада в голосовании

Anton.Aivazov

Новичок
Реализация АнтиФлада в голосовании

Всем добрый день!
Встала проблема реализации антифлада для голосования.
Человек может проголосовать 1 раз в день, для этого ему ставлю куку.
(лог об успешности или провале операции идет в базу)

Как лучше идентифицировать человек ли голосует или робот(скрипт) ?
allow_url_fopen я отключил
чужой скрипт сможет подделать нужные заголовки (возможно через сокеты)
Возможность отсутствия поддержки кук у клиента не рассматривается

будет ли эффективна эта схема?

PHP:
if(empty($_COOKIE['vote'])){
    $referer=getenv("HTTP_REFERER");
    if (ereg("^http://адрес_сайта",$referer) || ereg("^http://www.адрес_сайта",$referer) ) {
        setcookie("vote", какое то значение, time()+60*60*24);
        ## проверка на 'человеческий' фактор
        if(!empty($_COOKIE['vote'])){
            ## голосуем
        }
        else{
            ## Ошибка Требуются cookies
        }
    }
}
есть ли угрозы 'взлома' через шелл ?
насколько мне известно, чужой скрипт легко может подделать заголовки ДО запуска скрипта..а во время исполнения он не сможет сэмулировать факт получения кук..так ли это?


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

Фанат

oncle terrible
Команда форума
лог об успешности или провале операции идет в базу)
какой операции? установки куки? а как ты узнаёшь об этом этом?
Как лучше идентифицировать человек ли голосует или робот(скрипт) ?
никак
allow_url_fopen я отключил
причём тут allow_url_fopen?
есть ли угрозы 'взлома' через шелл ?
при чём здесь взлом через шелл?

насколько мне известно, чужой скрипт легко может подделать заголовки ДО запуска скрипта..а во время исполнения он не сможет сэмулировать факт получения кук..так ли это?
как всё запущено...
читай PHP FAQ: Самые основы. Как работает PHP. про "запуск" и "исполнение".
будет ли эффективна эта схема?
скажи, ты не пробовал её проверить в действии?
 

Anton.Aivazov

Новичок
Автор оригинала: Фанат
какой операции? установки куки? а как ты узнаёшь об этом этом?
никак

причём тут allow_url_fopen?

при чём здесь взлом через шелл?


как всё запущено...
читай PHP FAQ: Самые основы. Как работает PHP. про "запуск" и "исполнение".

скажи, ты не пробовал её проверить в действии?
на фак посылать меня не стоит. короче говоря невозможно отделить человека от машины..очень жаль

по поводу отслеживания установки кук ВО время исполнения скрипта - здесь я размечтался, признаю

Выходит не существуют более менее гибкого решения?
не проще будет запихнуть скрипт на крон, который раз в день бы чистил базу голосов, уменьшая их количество до 1 от одного ip?
 

kost

Новичок
Anton.Aivazov
А как насчет картинки с цифорками?

> не проще будет запихнуть скрипт на крон, который раз в день бы чистил базу голосов, уменьшая их количество до 1 от одного ip?

Нет, не проще. На моем ip около 80 компьютеров.
 

Фанат

oncle terrible
Команда форума
kost
он не спрашивал будет ли точнее. он спросил, будет ли проще.
постарайся читать повнимательнее.
тем более, что твои 80 компов никакого влияния даже на статистику не окажут.
 

Anton.Aivazov

Новичок
нет, картинки не подходят...(
возможно стоит поставить фильтр на то, чтобы резать голоса от одного ипа с учетом временных интервалов между голосами

т.е. резать серии 'левых голосов' первый принимать, а некоторый процент последующих, идущих скажем через 3 секунды после предыдущих резать..

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

Фанат

oncle terrible
Команда форума
сталкивались, многие.
ты не поверишь - и они даже писали на форум ;-)
 

Andreika

"PHP for nubies" reader
Anton.Aivazov
в чем вопрос? ты не знаешь как тебе надо? не можешь определиться какие голоса считать, а какие нет? дык мы за тебя это врядли решим... сам уж определись
или техническая проблема?
 

kost

Новичок
Делайте лимит голосов с одного ip в день. Плюс глазами смотрите на статистику. Если робот - будет заметно.
 

Anton.Aivazov

Новичок
Автор оригинала: kost
Делайте лимит голосов с одного ip в день. Плюс глазами смотрите на статистику. Если робот - будет заметно.
скорее всего так и поступлю + буду требовать поддержку кук на клиенте
всем спасибо, тема закрыта
 

Andreika

"PHP for nubies" reader
+ буду требовать поддержку кук на клиенте
10ый раз одно и тоже... как ты ее требовать будешь?
 
Сверху