Как поддержать анонимность на сайте?

Я делаю сайт (использующий PHP, JavaScript и MySQL) с системой голосования, которая позволяет людям голосовать анонимно, но только один раз.

Это означает, что моя система должна знать, кто проголосовал (потому что я должен проверить, голосовал ли уже пользователь), но я не хотел сохранять имя пользователя или IP-адрес пользователя в базе данных (разрушить анонимность). Я не знаю, с чего начать, мне нужны некоторые рекомендации; что я должен искать?

2 ответа

Решение

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

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

  • Пользовательские голоса
  • Вы хешируете IP и сохраняете его.
  • Вы даже можете сохранить его в другом месте. Не нужно даже сохранять то, за что проголосовал хэш, какой вариант.
  • Пользователь снова голосует -> IP-хэш уже есть в базе данных.
  • Чтобы не отдавать, если кто-то уже проголосовал, не отвечайте "вы уже проголосовали", но только не сохраняйте голосование. Таким образом, нет способа узнать, был ли голос на этой машине.

Имейте в виду, речь идет об анонимности, а не о том, как обеспечить однократное голосование.

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

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

Другая возможность - это другая форма постоянных файлов cookie, которые получили широкую огласку в прошлом году (или это был 2012 год - я забыл), которые используют Flash для хранения файлов cookie. Эти файлы cookie могут быть доступны в нескольких браузерах. Одним из таких решений является flash-cookie, но, опять же, это может раздражать пользователей и не будет на 100% надежным, поскольку не у всех пользователей включена или установлена ​​Flash.

Другие вопросы по тегам