Я хотел бы внедрить систему голосования на своем сайте, не заставляя их создавать учетную запись. В конечном итоге они будут голосовать вверх / вниз часть контента, которая имеет уникальный идентификатор.
Будем очень благодарны за любые мысли по этим вопросам или за понимание лучшего подхода.
Да, вы можете использовать куки-файл и установить срок действия очень далеко в будущем; однако ничто не мешает кому-либо очистить свой кеш и снова голосовать.
Лучше всего использовать куки-файл и не допускать голоса от одного и того же IP-адреса в течение 15 минут друг от друга … без регистрации это самое лучшее, что вы можете сделать.
Вы можете определить пользователей на основе не только их IP. Например, вы можете включить IP + всю информацию заголовка запроса (например, Browser, Version Numbers, Capabilities) и хэш. Это будет более или менее однозначно идентифицировать вашего пользователя (но не 100%, к сожалению).
Вы можете разрешить им входить в систему с использованием OpenId , это позволит им использовать существующую учетную запись для голосования, и им не нужно будет создавать новую учетную запись.
Google и Yahoo и другие имеют службы, позволяющие вам аутентифицировать пользователей.
Если вы не аутентифицируете пользователей в некотором роде, система голосования будет открыта для злоупотреблений.
Пользовательский агент IP + намного уникален, чем IP; не уверен, насколько это подходит для ваших целей. Если вы отправите им куки-файл, он будет возвращен этим компьютером (если они используют тот же браузер), пока куки-файл останется вокруг, независимо от IP-адреса, но заметьте, что пользователь может избавиться от файла cookie, когда захочет ,
Если вас беспокоит использование этой системы для предотвращения мошенничества с голосованием, я не думаю, что вы не сможете обойтись, чтобы у них была учетная запись.
В принципе для вас невозможно использовать cookie, чтобы различать посетителя, который никогда не посещал, и посетителя, который посетил, но удалил cookie. Следовательно, любое решение на основе файлов cookie будет уязвимым для тривиального мошенничества с голосованием.
Подумайте об обнимании этой реальности в духе Дж. Генри Лоуенгард , который, когда он установил 100 лучших сайтов на WFMU еще в середине 1990-х годов, предоставил кнопку на странице «ваш голос засчитан» на странице «Назад и проголосовать» Больше!"
Фактически, идите туда сейчас и проголосуйте за (или против) StackOverflow!
Я сейчас думаю о той же проблеме. мои возможные подходы будут следующими:
(A) вы можете принимать голоса от тех людей, которые были на вашем сайте (используя СЕССИИ) не менее 15 минут (это может быть приблизительное время, когда пользователь может прочитать статью в блоге / сайте). когда они голосуют, таймер сбрасывается для следующего голосования. так что таким образом, нет необходимости удалять файлы cookie для пользователей.
(B) вы можете принимать голоса от незарегистрированных людей и получать их адрес электронной почты и отправлять им ссылку для голосования на свой голос. когда они нажимают ссылку подтверждения в своем почтовом ящике, вы можете фактически подсчитать голос. это похоже на голосование за адрес электронной почты.
(C) комбинации (A) и (B). таким образом вы можете быть уверены, что будете отправлять контрольные ссылки только каждые 15 минут одному пользователю, которого не будет много 🙂
Я знаю, что это старо, но просто приехал сюда и подумал.
Как насчет чего-то вроде https://panopticlick.eff.org ? Еще одна вещь, которую можно было бы бросить.
(Если это когда-либо выходит в автономный режим: это совокупный отпечаток пальца, сделанный из обычного материала плюс + Детали плагина для браузера + Часовой пояс + Размер экрана и глубина цвета + Системные шрифты + суперкурки)
Другой вариант – использовать сеанс. Это позволит вам хранить идентификатор сеанса в сочетании с IP-адресом. Это позволит вам получать несколько IP-адресов, но с разных сеансов. Единственным недостатком этого было бы возможное переключение браузеров. Добавление файла cookie, чтобы сделать его трио, могло помочь избавиться от наводнений.
Я делал это в прошлом только с IP-адресом, который, похоже, работает в небольших масштабах.
Вы можете попробовать Evercookie или подобные решения.