Публичное голосование и избегание повторного голосования: использование куки или IP? - PullRequest
3 голосов
/ 25 мая 2011

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

Должен ли я использовать куки? (с проблемой, что он может удалить куки и голосовать x999 раз) или я храню его IP в базе данных?

Ответы [ 5 ]

2 голосов
/ 25 мая 2011

Решение состоит из трех частей:

  1. использование файла cookie для предотвращения двойного голосования
  2. сохранение всех событий голосования в базе данных (ip, пользовательский агент, опрос / идентификатор статьи, голосование)
  3. реализовать алгоритм, который будет запускаться каждые 24 часа, чтобы удалить двойные голоса, сбежавшие из # 1.Алгоритм будет использовать данные из # 2

Использование только IP нецелесообразно, так как может исключить множество людей из системы голосования.

1 голос
/ 25 мая 2011

Используйте IP.

Хотя вы можете заставить группу людей голосовать только один раз за одним IP, альтернативой является тривиальный обход (не хранить куки).

0 голосов
/ 25 мая 2011

Вместо файлов cookie можно использовать evercookie , что намного труднее (но все же возможно) обойти.

evercookie - это API JavaScript доступно, что производит чрезвычайно постоянные куки в браузере. это цель состоит в том, чтобы идентифицировать клиента даже после того как они удалили стандарт куки, Flash куки (локальный общий Объекты или ЛСО) и др.

0 голосов
/ 25 мая 2011

Если пользователь аутентифицируется, то есть голосует за себя, бросает в базу данных запись о том, что пользователь уже проголосовал.Для анонимных избирателей вы ограничены файлами cookie, локальным хранилищем и т. Д.

0 голосов
/ 25 мая 2011

Я бы сказал, сделайте так, чтобы, если есть люди с динамическим IP-адресом, они должны были изменить IP-адрес и удалить файлы cookie в одно и то же время.

...