Подтвердить что ты не робот

Внедрение системы голосования без регистрации

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

  • Я знаю, что я могу хранить записи в таблице с IP/ID, но что, если есть несколько пользователей, поступающих с одного и того же IP?
  • Есть ли способ однозначно идентифицировать посетителей, не привязывая их к внешнему ip?
  • Если создан GUID, сохраните его в файле cookie на этом компьютере, можно ли его получить позже на том же компьютере с тем же IP? Другой IP?

Любые мысли по этим вопросам или любое понимание лучшего подхода были бы весьма признательны.

4b9b3361

Ответ 1

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

Лучше всего использовать cookie и не допускать голоса от одного и того же IP-адреса в течение 15 минут друг от друга... без регистрации это самое лучшее, что вы можете сделать.

Ответ 2

Вы можете определить пользователей на основе не только их IP. Например, вы можете включить IP + всю информацию заголовка запроса (например, Browser, Version Numbers, Capabilities) и хэш. Это будет более или менее однозначно идентифицировать вашего пользователя (но не 100%, к сожалению.)

Ответ 3

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

Google и Yahoo и другие имеют службы, позволяющие вам аутентифицировать пользователей.

Если вы каким-то образом не аутентифицируете пользователей, система голосования откроет мне право на злоупотребление.

Ответ 4

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

Подумайте об обнимании этой реальности в духе J Henry Lowengard, который, установив 100 лучших сайтов на WFMU в середине 1990-х годов, при условии, что кнопка на странице "ваш голос засчитана" с надписью "Назад и проголосуйте еще немного!"

Фактически, перейдите туда сейчас и проголосуйте за (или против) StackOverflow!

Ответ 5

Пользовательский агент IP + намного уникален, чем IP; не уверен, соответствует ли это вашим целям. Если вы отправите им куки файл, он будет возвращен этим компьютером (если они используют тот же браузер), пока куки файл останется вокруг, независимо от IP-адреса, но заметьте, что пользователь может избавиться от файла cookie, когда захочет.

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

Ответ 6

Я сейчас думаю о той же проблеме. мои возможные подходы будут следующими:

  • (A) вы можете принимать голоса от тех людей, которые были на вашем сайте (используя СЕССИИ) не менее 15 минут (это может быть приблизительное время, когда пользователь может прочитать статью в блоге/сайте). когда они голосуют, таймер будет reset для следующего голосования. так что таким образом, нет необходимости удалять файлы cookie для пользователей.

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

  • (C) комбинация (A) и (B). таким образом, вы можете быть уверены, что будете отправлять контрольные ссылки только каждые 15 минут одному пользователю, который не будет много:)

Ответ 7

Я знаю, что это старо, но просто пришел сюда и имел идею.

Как насчет чего-то вроде https://panopticlick.eff.org? Еще одно, что можно было бы бросить.

(Если это когда-либо выходит в автономный режим: это совокупный отпечаток пальца, сделанный из обычного материала плюс + Детали плагина для браузера + Часовой пояс + Размер экрана и глубина цвета + Системные шрифты + Суперкубки )

Ответ 8

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

Я делал это в прошлом только с IP-адресом, который, похоже, работает в небольших масштабах.

Ответ 9

Вы можете попробовать Evercookie или аналогичные решения.