Предотвращение фальсификации голосования - как обеспечить законность голосования [закрыто]

На веб-сайте, над которым я работаю, есть конкурс, в котором пользователям разрешается голосовать за понравившуюся запись. Заказчик хочет предотвратить мошенничество при голосовании.

Идея записывать IP-адреса всех тех, кто размещает голоса, возникла, но я не уверен, что это хорошее решение. Внутренние IP-адреса, конечно, плохая идея, но как насчет внешних адресов? Проблема, которую я вижу в этом, заключается, например, в том, что целая компьютерная лаборатория колледжа может работать с одним внешним IP-адресом. - может быть, даже весь кампус. Если с IP-адреса разрешено только ограниченное количество голосов, этот предел может быть достигнут очень быстро с помощью полностью законных голосов.

Кто-нибудь знает, как это лучше реализовать? Наверняка это было сделано раньше.

Любая помощь приветствуется. Заранее спасибо.

2
задан 8 July 2010 в 20:52
3 ответа

Все это зависит от суммы, Вы хотите препятствовать пользователю.

  • Вы можете использовать капчу для создания автоматизированного голосования невыполнимым, но не препятствуете единственному преданному человеку глупость голосования.
  • Можно потребовать, чтобы пользователи аутентифицировались перед голосованием.
  • Можно потребовать, чтобы пользователь для предоставления адреса электронной почты затем отправил в уникальный один раз ссылку для представления голосования. Это подобно тому, как Вы зарегистрировали бы пользователя, только если у них был действующий электронный адрес. Отсюда Вы могли отклонить несколько голосов за тот же адрес электронной почты.
  • Сохраните cookie, после того как пользователь голосует, чтобы указать что пользователь, уже проголосовавший. Это легко обойти, но могло бы остановить менее технически склонного пользователя.
  • Используйте открыл такой, поскольку с dotnetopenauth для аутентификации к третьей части, такой как Google или Yahoo для доступа к области голосования затем записывают пользователя, открылся для будущих запросов.
  • Запишите нажатия клавиш пользователя (динамика клавиатуры), httpcontext данные и время завершения голосования для статистического анализа возможности повторного избирателя с использованием статистического алгоритма кластеризации, такого как k-средства.
  • Это просто становится более сумасшедшим с этого момента, таким образом, я остановлюсь здесь.
4
ответ дан 3 December 2019 в 08:44

То, что Вы хотите, должно открыть голосование только пользователям, которые регистрировались, по крайней мере, в течение недели/месяца/и т.д. - но это, вероятно, не поможет Вам, потому что при переводе в рабочее состояние проверок IP оно кажется, что Вы не аутентифицируете своих пользователей вообще.

При попытке устранить мошенничество, и Вы не аутентифицируете своих пользователей, Вы, вероятно, добираетесь, чтобы вскинуть Ваши руки и уйти. Если можно быть удовлетворены минимальным сокращением случайного мошенничества, существует несколько вещей, которые можно сделать.

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

То, что Вы ищете, является некоторым битом информации, которая будет уникальна для пользователя. Если у Вас в настоящее время нет этого, можно создать его путем отсылки маркеров единственного использования пользователям в том, что является в основном vote-invite. Это все еще проблематично, конечно, если Ваши пользователи уже не дали Вам разрешение послать им по электронной почте, или Вы не знаете, кто Ваши пользователи.

Если можно соблазнить пользователей в регистрацию на веб-сайте, то можно аутентифицировать голоса тот путь, но опасно запустить это в то же время, что и голосование, потому что еще раз Вы сталкиваетесь с возможностью усилия по вербовке.

Можно задать вопросы наряду с опросом, на который любые реальные пользователи должны смочь ответить легко, но лица, не использующие своего права не были бы, и результаты фильтра тот путь, но можно обнаружить, что пользователи знают меньше, чем Вы думаете, и ничто не препятствует тому, чтобы поддельные избиратели были предоставлены шпаргалку, содержащую все ответы.

То, что Вы, кажется, ищете, является способом ограничить вход только неизвестным числом абсолютно неизвестных людей и препятствовать тому, чтобы они обеспечили вход несколько раз или изменили их очевидные идентификационные данные. Это не собирается происходить.

5
ответ дан 3 December 2019 в 08:44

За исключением ограничения его на IP, очень еще нет, можно сделать, если Вы действительно заботитесь о тех голосах, являющихся уникальным. Можно хотеть посмотреть на хранение дюйм/с, которые голосовали в нереляционной базе данных, чтобы увеличить скорость запроса и уменьшить использование ресурсов.

1
ответ дан 3 December 2019 в 08:44

Теги

Похожие вопросы