X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Голосование с защитой от накруток
r3ntg3n
r3ntg3n
Topic Starter сообщение 20.1.2011, 21:08; Ответить: r3ntg3n
Сообщение #1


Доброго времени суток!

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

Кратое описание задачи: есть галерея, для которой открывается голосование. Понятное дело, за каждую фотографию человек может голосовать только 1 раз в сутки. Извините, но слегка зашел в тупик.

Что касается наработок: есть таблица в БД следующей структуры:
id - уникальный id голоса
date - дата голосования
module - имя модуля, в котором голосовали
module_item - уникальный id записи внутри модуля, за которую голосовали
remote_addr - ip голосовавшего
platform - ось голосовавшего
user_agent - браузер голосовавшего
key - ключ, используемій при голосовании


По поводу ключа, несколько ниже.
Есть функции генерации, записи, проверки ключей.

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

Вопросов 2:
1. При генерации ключа есть факторы, которые влияют на его вид:
а) ip посетителя, который может меняться;
б) ось посетителя, например, у меня 2 оси;
в) браузер, на каждой оси есть 3-5 браузера (у меня, опять же для примера).
Каким способом можно снизить вероятность изменения ключа, при условии, что дата та же?

Первым на отсеивание идет браузер. Вопрос в том, что отсеивать, и что использовать взамен? Писать в куки массив с id элементов, за которые голосовал? Как быть, есть куки не сохраняются дольше 1 сеанса (у меня так)?

Вопрос 2: каков будет правильный алгоритм проверки наличия голосов от сего юзверя в БД?
Вижу следующий вариант:
а) проверка по полученому из кук ключу, если за эту фотку есть голос с таким ключем - извините;
б) если голосов с этим ключем нет - проверка ip + оси?

Хочеться написать все правильно, а не потом переписывать код и латать дыры, оптимизируя производительность.
Если есть возможность или наработки - толкните на путь. Код не прошу, хотя бы алгоритм.

Заранее спасибо всем!

ЗЫ: при добавлении голоса в БД будет вываливаться капча.

UPD: голосование после регистрации не является вариантом, так как нужно голосование сделать доступным даже для тех, у кого нет учетки на сайте.

UPD: по поводу прокси - написан метод для их отсеивания и блокировки голосвания.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 20.1.2011, 22:06; Ответить: ottaviano
Сообщение #2


ссылка в посте полезная
межет быть полезным
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BoL4oNoK
BoL4oNoK
сообщение 20.1.2011, 22:07; Ответить: BoL4oNoK
Сообщение #3


(r3ntg3n @ 20.1.2011, 23:08) *
1. При генерации ключа есть факторы, которые влияют на его вид:
а) ip посетителя, который может меняться;
б) ось посетителя, например, у меня 2 оси;
в) браузер, на каждой оси есть 3-5 браузера (у меня, опять же для примера).
Каким способом можно снизить вероятность изменения ключа, при условии, что дата та же?


Делать голосование для зарегиных и сверять по ЛОГИНУ

(r3ntg3n @ 20.1.2011, 23:08) *
Вопрос 2: каков будет правильный алгоритм проверки наличия голосов от сего юзверя в БД?
Вижу следующий вариант:
а) проверка по полученому из кук ключу, если за эту фотку есть голос с таким ключем - извините;
б) если голосов с этим ключем нет - проверка ip + оси?


Берешь логин, при голосовании записываешь его в БД вместе с датой, предварительно проверив голосовал ли данный пользователь сегодня или нет. Если нет - записываем в БД
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
Topic Starter сообщение 21.1.2011, 0:03; Ответить: r3ntg3n
Сообщение #4


(BoL4oNoK @ 21.1.2011, 00:07) *
Делать голосование для зарегиных и сверять по ЛОГИНУ
см. первый пост - голосование должно быть доступным для любого, кто зайдет на сайт.

Пока что мыслей никаких. Если что надумаю - отпишусь. Утро вечера мудреннее.(с)

upd: юзать сторонний сервис не очень хочу, скорее не хочу.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 21.1.2011, 5:30; Ответить: Alcorn
Сообщение #5


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

Единственный метод - разрешить голосовать один раз только зарегистрированным пользователям, имеющим определённое количество сообщений (например 500) + зарегистрированных до начала опроса (например за пол года). Тогда получим правдивую картинку. Иначе, если кто-то поставит перед собой цель накрутить, то он это сделает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
Topic Starter сообщение 21.1.2011, 14:02; Ответить: r3ntg3n
Сообщение #6


В общем, единственным решением, которое может дать примерно 90% защиты от накруток - разрешение на голосовани зарегистрированным пользователям, причем, зарегистрированным до голосвания. Если делать голосование публичным - полной защиты не будет. Нужно чем-то жертвовать, например, тем, что накрутчик и честные пользователи могут сидеть за один и тем же NAT'ом, которым пускает всех через свой ip. Cookies в данном случае так же не спасут, так как не все хранят их дольше сеанса, а накрутчик и подавно.

Итог: цель должна оправдывать средства. Если в качестве подарков победителям госолования представляются дорогостоящие призы - тут только зарегистрированным пользователи. Если же там футболки/кепки/мячи, например, тут не стоит заморачиваться выдумывая срехсложные алгоритмы. Хотя бы потому, что время, затраченное на их написание и пропработку, просто по цене не сопоставимо с ценой самих призов.

Спасибо всем, кто отписался сдесь и предложил варианты рещения задачи!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 21.1.2011, 14:15; Ответить: Webmaster_hb
Сообщение #7


(r3ntg3n @ 21.1.2011, 02:03) *
голосование должно быть доступным для любого, кто зайдет на сайт.

для такого голосования невозможно сделать его так, чтобы не было накрутки !!!
все методы будут только отсеивать школьников
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
Topic Starter сообщение 21.1.2011, 14:25; Ответить: r3ntg3n
Сообщение #8


(Webmaster_hb @ 21.1.2011, 16:15) *
для такого голосования невозможно сделать его так, чтобы не было накрутки !!!
все методы будут только отсеивать школьников
согласен. еще раз спасибо всем.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Дешевый SSD хостинг на DDR4 с DDOS защитой для 10 сайтов за 69 рублей!
106 HostiMan 70462 2.4.2024, 19:34
автор: HostiMan
Открытая тема (нет новых ответов) Голосование для сайта звёздочками.
0 SOFMACH 3422 19.2.2015, 5:56
автор: -SOFMACH-
Открытая тема (нет новых ответов) Онлайн голосование с установленным смс биллингом
0 a13-08 1574 14.3.2012, 18:17
автор: a13-08
Опрос (нет новых голосов) Опрос: ГОЛОСОВАНИЕ на конкурс – лучший коллаж (мэтт)
на кону 100$
107 majekako 22462 4.2.2010, 11:29
автор: Web-Dreamer
Открытая тема (нет новых ответов) Установка SAPE с защитой!
Устанавливаю SAPE на сайт и настраиваю защиту от продажных ссылок!
22 alexa 14914 1.9.2009, 19:34
автор: alexa


 



RSS Текстовая версия Сейчас: 25.4.2024, 19:26
Дизайн