Как вы относитесь к публичному голосованию (любой может «понравиться или не понравиться» статье) и ограничить его голосование только один раз?
Должен ли я использовать куки? (с проблемой, что он может удалить куки и голосовать x999 раз) или я храню его IP в базе данных?
Решение состоит из трех частей:
Использование только IP нецелесообразно, так как может исключить множество людей из системы голосования.
Используйте IP.
Хотя вы можете заставить группу людей голосовать только один раз за одним IP, альтернативой является тривиальный обход (не хранить куки).
Вместо файлов cookie можно использовать evercookie , что намного труднее (но все же возможно) обойти.
evercookie - это API JavaScript доступно, что производит чрезвычайно постоянные куки в браузере. это цель состоит в том, чтобы идентифицировать клиента даже после того как они удалили стандарт куки, Flash куки (локальный общий Объекты или ЛСО) и др.
Если пользователь аутентифицируется, то есть голосует за себя, бросает в базу данных запись о том, что пользователь уже проголосовал.Для анонимных избирателей вы ограничены файлами cookie, локальным хранилищем и т. Д.
Я бы сказал, сделайте так, чтобы, если есть люди с динамическим IP-адресом, они должны были изменить IP-адрес и удалить файлы cookie в одно и то же время.