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

StackOverflow https://stackoverflow.com/questions/978369

Вопрос

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

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

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

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

Решение

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

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

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

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

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

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

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

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

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

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

Подумайте о том, чтобы принять эту реальность в духе Дж. Генри Ловенгард, который, когда он настраивал сайт топ-100 по WFMU еще в середине 1990-х годов на странице «Ваш голос засчитан» появилась кнопка с надписью «Вернитесь и проголосуйте еще!»

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

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

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

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

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

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

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

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

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

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

Вы могли бы попробовать Эверкуки или подобные решения.

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