Предотвратить двойное голосование - PullRequest
6 голосов
/ 22 января 2012

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

Какой метод лучше всего подходит дляиспользовать?Нужно ли использовать капчу для большей защиты от спама?

Ожидается, что число голосов будет составлять миллионы, и тема не очень критична, пока я получаю 95% точности, что было бы хорошо.Благодарю.

Ответы [ 3 ]

5 голосов
/ 22 января 2012

Вы можете объединить эти два метода:

  • Добавить файл cookie, чтобы запретить несколько голосов на одном компьютере
  • Записывать IP-адреса и предотвращать голосование более определенного числа раз изодин и тот же адрес (например, 5 раз за один час).

Это позволит нескольким лицам голосовать из одной сети, но при этом предотвратит чрезмерный обман.

Выможет также усложнить создание бота для голосования, добавив скрытое поле формы с токеном, который должен быть включен в голосование, и / или используйте Ajax для голосования.Я знаю, что построить бота в любом случае относительно легко, но большинство читеров не такие умные.

1 голос
/ 22 января 2012

У вас есть несколько вариантов, некоторые или все из которых вы можете использовать.

Вы можете записать IP-адрес, а затем проверить его по IP-адресу, но тогда это не означает, что конкретный человек - это просто компьютер, а иногда и не один компьютер.

Вы также можете записать cookie в браузер пользователя, но пользователь может использовать другой браузер, компьютер и т. Д.

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

Если вы рассматриваете капчу, вы также можете попросить пользователя указать адрес электронной почты, и тогда вы будете уверены, что по крайней мере один голос на адрес электронной почты. Однако даже в этом случае вам не могут быть гарантированы действительные адреса электронной почты.

1 голос
/ 22 января 2012

Файлы cookie и Идентификаторы сеанса помогут, хотя оба могут быть потеряны при закрытии браузера (если у пользователя есть возможность удалить их).Тем не менее, они дадут вам некоторую степень точности (например, ленивые избиратели не будут закрывать и открывать свои браузеры).

Использование IP-адресов также будет работать, но как @Майкл Диллон сказал, что люди с одинаковым IP-адресом (одним и тем же маршрутизатором) не смогут голосовать.

...