Это фундаментальная проблема для всех сайтов для голосования в Интернете, и вы просто решаете проблему.
То, как вы это сформулировали, «вы хотите, чтобы каждый визит был разрешен только один [голос]» означает, что вы хотите разрешить им голосовать один раз, когда они открывают свой браузер и заходят на сайт. Я не думаю, что это действительно то, что вы ищете.
Я подозреваю, что вы хотите, чтобы данный человек Человек мог голосовать только один раз (за опрос, может быть).
Проблема в том, что, как только вы правильно сформулировали вопрос, проблема становится намного более ясной. Вы не пытаетесь идентифицировать интернет-узел (IP-адрес), посещение (сеансовый файл cookie), экземпляр браузера (постоянный файл cookie) или компьютер (также трудно идентифицировать).
Вы можете использовать техники с файлами cookie, и они были подходящими для обычного пользователя. Подорвать эту технику так же легко, как
- Очистить ваши куки в браузере,
- Запрет куки в браузере,
- открытие другого браузера,
- Ходить на другой компьютер,
- используя анонимайзер,
- ... бесконечные другие пути.
Вы можете выполнить проверку по адресу электронной почты, но вы указали, что не хотите регистрироваться, поэтому я не верю, что это решит и вашу проблему.
Если вам действительно необходимо идентифицировать уникального пользователя для системы голосования, вам понадобятся некоторые полномочия, которые готовы поручиться за идентичность любого данного пользователя или разрешить доступ к программному обеспечению только с доверенной платформы.
Первый метод требует регистрации (а зачастую и дорогостоящей и отнимающей много времени регистрации), которая проверяет фактическое юридическое имя и местонахождение лица. Затем, используя инфраструктуру открытых ключей (также называемые цифровыми сертификатами), вы можете идентифицировать отдельного человека на основе предоставленных им учетных данных.
Второй метод, требующий доверенной платформы, основывается на аппаратном обеспечении после определенного заранее определенного поведения. Вы можете, например, создать сайт голосования, который работает через XBox 360 или iPhone. Вы должны создать приложение, которое установлено на одном из этих устройств. Основываясь на способе защиты платформы, вы можете использовать характеристики уникальности, такие как аппаратный адрес или Live ID на XBox 360 или аппаратный адрес или номер телефона на iPhone, чтобы получить общую уверенность в том, что пользователь тот же, кто посетил раньше. Поскольку у вас есть контроль над приложением, а пользователь, в частности, не имеет, в силу характера доверенной платформы, вы имеете разумную уверенность в том, что большинство пользователей не смогут подорвать намерения приложения.
Я подозреваю, что это многословный способ сказать, что вы можете это сделать, но решить эту проблему далеко не просто.
Подумайте о политических выборах и о том, сколько ресурсов и энергии уходит на то, чтобы сделать их честными и анонимными, и все же это очень сложная проблема.