Это фундаментальная проблема со всеми сайтами голосования в Интернете, и вы просто нарушаете поверхность проблемы.
Как вы его сформулировали, вы «только хотите разрешить каждому посещению один [голос]» означает, что вы хотите разрешить им голосовать каждый раз, когда они открывают свой браузер и переходят на сайт. Я не думаю, что это действительно то, что вы ищете.
Я подозреваю, что вы хотите, чтобы данный человек Лицо может голосовать только один раз (за опрос, возможно).
Проблема в том, что, как только вы правильно сформулировали вопрос, проблема становится намного яснее. Вы не пытаетесь идентифицировать интернет-узел (IP-адрес), посещать (сеансовый файл cookie), экземпляр браузера (постоянный файл cookie) или компьютер (трудно идентифицировать).
Вы можете использовать методы с Cookies, и они были подходящими для обычного пользователя. Расстройству этот метод так же просто, как - Очистка куки в браузере, - Запрет куки в браузере, - Открытие другой браузер, - Прогулка на другой компьютер, - Использование anonimizer, - ... бесконечны другие пути.
Вы можете сделать валидацию по электронной почте, но указали, что не хотите регистрироваться, поэтому я не верю, что решает и вашу проблему.
Если вам действительно нужно идентифицировать уникального пользователя для системы голосования, вам понадобятся некоторые полномочия, которые готовы поручиться за личность любого данного пользователя или разрешить доступ к программному обеспечению только с доверенной платформы ,
Первый метод требует регистрации (и часто это требует дорогостоящей и длительной регистрации), которая проверяет фактическое юридическое имя и местонахождение человека. Затем, используя инфраструктуру открытого ключа (aka Digital Certificates), вы можете идентифицировать отдельного человека на основе учетных данных, которые он предоставляет.
Второй метод, требующий надежной платформы, основывается на аппаратных средствах после определенного предопределенного поведения. Например, вы можете создать сайт для голосования, который работает через XBox 360 или iPhone. Вы должны создать приложение, установленное на одном из этих устройств. Основываясь на том, как защищена платформа, вы можете использовать уникальные характеристики, такие как аппаратный адрес или Live ID на XBox 360, или аппаратный адрес или номер телефона на iPhone, чтобы получить общую уверенность в том, что пользователь тот же, кто посетил раньше. Поскольку у вас есть контроль над приложением, а пользователь специально этого не делает, из-за характера доверенной платформы у вас есть разумная уверенность в том, что большинство пользователей не смогут подорвать намерение приложения.
Я подозреваю, что это длинный способ сказать, что вы можете это сделать, но это далеко не простая проблема для решения.
Рассмотрите политические выборы и количество ресурсов и энергии, чтобы сделать их справедливыми и анонимными, и все же это очень сложная проблема.
Я верю, что NAT * * очень сильно используется. По крайней мере, по моему опыту. В каждой сети рабочего места, с которой я столкнулся, используются частные IP-диапазоны и маскировка NAT/IP. – codeape
NAT, который часто используется в таких местах, как университеты, которые идентифицируют конкретного пользователя, не так. Поскольку NAT разрушает подход TCP/IP (что любой IP-адрес должен идентифицировать одну станцию), используя его, может иметь побочные эффекты, подобные этому, и любой администратор хочет использовать NAT, чтобы принять ограничения, которые будут вынуждены его/ее пользователям. – Isaac
Re: _NAT не используется тяжело_ _ «Мы выяснили, что более 90% DSL-линий используют шлюзы NAT для подключения к Интернету и что 10% линий DSL имеют несколько хостов, которые одновременно активны. до 52% строк имеют несколько хостов. В наших выводах указывается, что использование IP-адресов в качестве идентификаторов хостов может приводить к существенным ошибкам и поэтому должно использоваться с осторожностью ». _ - http://www.icir.org/gregor/ paper/pam11-nat.pdf – Molomby