Подтвердить что ты не робот

Есть ли надежный способ предотвратить обман на веб-конкурсе, где анонимные пользователи могут голосовать?

Я работаю над сетевым конкурсом, который должен позволять анонимным пользователям голосовать, но мы хотим, чтобы они не голосовали более одного раза. Ограничения на основе IP могут быть обойдены анонимными прокси, пользователи могут очищать файлы cookie и т.д. Можно использовать приложение Silverlight, которое будет иметь доступ к изолированному хранилищу, но пользователи все равно могут его очистить.

Я не думаю, что это можно сделать без какого-либо джокерского голосования с ботом или чем-то еще. Есть идея?

4b9b3361

Ответ 1

Короткий ответ: нет. Более длинный ответ: но вы можете сделать это произвольно сложным. Что я буду делать:

  • Голосование требует решения captcha (чтобы избежать максимально автоматизированного голосования). Чтобы быть еще более эффективным, я бы рекомендовал подготовить несколько типов простых капчей (например, "выбрать фотографию с котом", "что такое 2 + 2", "ввести слово" и т.д.) И повернуть их как с помощью время суток и IP, что должно сделать автоматические системы неэффективными (т.е. если кто-то, использующий IP A, создает бота для решения перехвата, это на следующий день станет бесполезным или если он распространяет его на другие компьютеры/использует прокси)
  • При фильтрации по IP-адресу следует внимательно рассмотреть ситуации, когда несколько хостов находятся за одним общедоступным IP-адресом (AFAIK AOL проксирует всех своих клиентов через несколько IP-адресов, поэтому такое ограничение эффективно запретит пользователям AOL). Кроме того, многие прокси отправляют вместе заголовки, указывающие на исходный IP-адрес (например, X-Forwarded-For), поэтому вы также можете взглянуть на это.
  • Наконец, использование чего-то вроде FSO (Flash Shared Objects - "Flash cookie" ) недостаточно для 99,99% людей, о которых не знают. Silverlight еще более неясен. Чтобы быть даже подлым, вы можете купить другой домен и установить FSO из этого домена (так, если пользователь ищет FSO, установленный вашим доменом, они не будут видеть).

Ни один из этих методов не является 100%, но, надеюсь, вместе они дают вам необходимый уровень уверенности. Если вы хотите повысить уровень выше, вам нужно добавить какую-либо регистрацию пользователя (это может быть так же просто, как задать правильный адрес электронной почты при голосовании и отправить ссылку подтверждения на указанный адрес и не считая голосов, за которые не была нажата ссылка, поэтому ей не нужно быть полноценным "создать учетную запись с именем пользователя/паролем/firs name/last name/etc" ).

Ответ 2

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

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

-Adam

Ответ 3

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

Однако CAPTCHA помогает как минимум ограничить голоса пользователям.

Конечно, даже при аутентификации вы не можете принудительно применять одно голосование, потому что тогда они учат ботов регистрироваться...

Ответ 4

Вы можете сделать это трудно.

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

Сохраните профиль для каждого пользователя, а затем, если вы получите профиль, который достаточно похож на тот, который уже находится в базе данных (вам придется настроить его), вы можете выбросить этот голос.

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

Ответ 5

Клиентские решения устранены по причинам, перечисленным вами - они могут управляться пользователем. Серверные решения, как вы сказали, можно обмануть и обойти.

Если вы согласны с тем, что на самом деле вы не можете быть на 100% уверены, что получаете ровно один голос на человека, тогда есть некоторые меры, которые вы можете предпринять, чтобы уменьшить шум.

  • Используйте CAPTCHA в своей форме подачи голосов, чтобы сделать ее более трудной для голосования ботов и скриптов.
  • Ограничьте количество голосов на каждый IP-адрес.
  • Подумайте, что нужно зарегистрироваться для голосования. (Я знаю, что это побеждает часть вашего первоначального вопроса, но это дает вам больший контроль над голосованием.)

Это хорошее начало.

Ответ 6

мой личный опыт в разработке и мониторинге конкурса говорит мне, что нет, нет надежного способа избежать обмана, если вы позволяете анонимным пользователям голосовать (или делать все, что позволяет им участвовать в конкурсе).

вы можете играть с IP, вводить задержки между действием и другим, но это действительно сложно: лучший способ - ввести капчу или что-то подобное, если это применимо в вашей конкретной ситуации.

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