Я создаю веб-приложение, в котором пользователи будут голосовать за некоторых кандидатов, нажав на пальцы вверх или вниз, и эти пользователи не будут иметь учетной записи на сайте.
Какой метод лучше всего использовать? Нужно ли использовать captcha для большей защиты от спама?
Ожидается, что подсчет голосов составит миллионы, и этот вопрос не очень критичен, если я получу 95% -ную точность, что было бы хорошо. Благодарю.
Вы можете комбинировать эти два метода:
Это позволит нескольким лицам голосовать за одну и ту же сеть, но все же предотвратить чрезмерный обман.
Возможно, вам также будет сложнее создать бот-голосование, добавив какое-то скрытое поле формы с токеном, который должен быть включен в голосование, и / или использовать Ajax для голосования. Я знаю, что относительно легко построить бота, но большинство читеров не так уж умны.
Файлы cookie и идентификаторы сеансов помогут, хотя оба могут быть потеряны при закрытии браузера (если пользователь разрешил их удалять). Тем не менее, они дадут вам определенную степень точности (например, ленивые избиратели не потрудились закрыть и снова открыть свои браузеры).
Использование IP-адресов также будет работать, но поскольку @Michael Dillon сказал, что люди с одним и тем же IP-адресом (таким же маршрутизатором) не смогут голосовать.
У вас есть несколько вариантов, некоторые или все из которых вы можете использовать.
Вы можете записывать IP-адрес, а затем проверять IP, но тогда это не означает, что конкретный человек просто компьютер, а иногда и не только один компьютер.
Вы также можете написать cookie в браузер пользователя, но пользователь может использовать другой браузер, машину и т. Д.
В рамках сеанса пользователя вы можете создать переменную сеанса, хотя, если вы ожидаете очень высокий трафик, это может быть не самый лучший вариант, а также только предотвращает повторное голосование в течение того же сеанса.
Если вы рассматриваете капчу, вы также можете попросить пользователя указать адрес электронной почты, а затем вы получите хотя бы один голос за адрес электронной почты. Однако даже тогда вам не могут быть гарантированы действительные адреса электронной почты.