На веб-сайте, над которым я работаю, есть конкурс, в котором пользователям разрешается голосовать за понравившуюся запись. Заказчик хочет предотвратить мошенничество при голосовании.
Идея записывать IP-адреса всех тех, кто размещает голоса, возникла, но я не уверен, что это хорошее решение. Внутренние IP-адреса, конечно, плохая идея, но как насчет внешних адресов? Проблема, которую я вижу в этом, заключается, например, в том, что целая компьютерная лаборатория колледжа может работать с одним внешним IP-адресом. - может быть, даже весь кампус. Если с IP-адреса разрешено только ограниченное количество голосов, этот предел может быть достигнут очень быстро с помощью полностью законных голосов.
Кто-нибудь знает, как это лучше реализовать? Наверняка это было сделано раньше.
Любая помощь приветствуется. Заранее спасибо.
Все это зависит от суммы, Вы хотите препятствовать пользователю.
То, что Вы хотите, должно открыть голосование только пользователям, которые регистрировались, по крайней мере, в течение недели/месяца/и т.д. - но это, вероятно, не поможет Вам, потому что при переводе в рабочее состояние проверок IP оно кажется, что Вы не аутентифицируете своих пользователей вообще.
При попытке устранить мошенничество, и Вы не аутентифицируете своих пользователей, Вы, вероятно, добираетесь, чтобы вскинуть Ваши руки и уйти. Если можно быть удовлетворены минимальным сокращением случайного мошенничества, существует несколько вещей, которые можно сделать.
Проверки IP избирателя являются относительно недорогим механизмом, чтобы попытаться сохранить несколькими голосующими вниз, если у Вас нет ничего иного для продолжения, но поскольку Вы заметили, что он может вызвать стоимость с точки зрения законных пользователей, которым препятствуют голосовать, и не делает ничего вообще для предотвращения укладки голосования вербовкой лиц, не использующих своего права, у каждого из которых будет законно различный IP-адрес (т.е. "Эй Slashdot/Reddit/Pharyngula/IRC-Channel-X, все идут голосование за эту опцию на этом опросе!"). Однопользовательское дополнение может все еще быть сделано с ботнетами или большими прокси-листами или учетными записями на нескольких машинах (т.е. любая университетская лаборатория не позади NAT).
То, что Вы ищете, является некоторым битом информации, которая будет уникальна для пользователя. Если у Вас в настоящее время нет этого, можно создать его путем отсылки маркеров единственного использования пользователям в том, что является в основном vote-invite. Это все еще проблематично, конечно, если Ваши пользователи уже не дали Вам разрешение послать им по электронной почте, или Вы не знаете, кто Ваши пользователи.
Если можно соблазнить пользователей в регистрацию на веб-сайте, то можно аутентифицировать голоса тот путь, но опасно запустить это в то же время, что и голосование, потому что еще раз Вы сталкиваетесь с возможностью усилия по вербовке.
Можно задать вопросы наряду с опросом, на который любые реальные пользователи должны смочь ответить легко, но лица, не использующие своего права не были бы, и результаты фильтра тот путь, но можно обнаружить, что пользователи знают меньше, чем Вы думаете, и ничто не препятствует тому, чтобы поддельные избиратели были предоставлены шпаргалку, содержащую все ответы.
То, что Вы, кажется, ищете, является способом ограничить вход только неизвестным числом абсолютно неизвестных людей и препятствовать тому, чтобы они обеспечили вход несколько раз или изменили их очевидные идентификационные данные. Это не собирается происходить.
За исключением ограничения его на IP, очень еще нет, можно сделать, если Вы действительно заботитесь о тех голосах, являющихся уникальным. Можно хотеть посмотреть на хранение дюйм/с, которые голосовали в нереляционной базе данных, чтобы увеличить скорость запроса и уменьшить использование ресурсов.