Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

As Lix stated, really the only way, without storing IP addresses or forcing users to register, would be to store a Cookie linked to a session, however of course this is by no means a solution, as Cookies can easily be cleared.

You could attempt to use a persistent Cookie solution, such as evercookie, but if I were a user of a site which implemented something like that, it would annoy me more than having to register, and no matter what methods are used, they can always be circumvented to remove the Cookie/identifying information.

Another possibility is another form of persistent Cookies which got a lot of publicity last year (or was it 2012 - I forget), which utilize Flash to store Cookies. These Cookies can be accessed in multiple browsers. One such solution is flash-cookie, but again, this is likely to annoy users, and would not be 100% reliable as not all users have Flash enabled or installed.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top