2010-08-03 3 views
6

На моем сайте мы запускаем систему конкурсов, и пользователи голосуют за контент другого пользователя. Недавно мы поймали, что кто-то создает несколько учетных записей для голосования несколько раз (последовательные идентификационные номера и голоса в течение пары минут). Мы хотели бы предотвратить это снова. Судя по тому, как Times обрабатывал свой опрос «Самый влиятельный человек века», даже большие парни ошибаются.Как предотвратить максимальное количество читеров для опросов?

В настоящее время мы регистрируем идентификаторы пользователей, дату голосования и адреса IPv4 (через $ _SERVER ['REMOTE_ADDR']).

Что я могу сделать, чтобы предотвратить или затруднить кому-то голосование мошенническим путем?

ответ

6

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

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

+1

Я голосовал за вас, потому что это хорошая система, но способность проголосовать за кого-то может также заставить сообщество островного бота стать де-факто «избирателями» и, следовательно, позволить себе быть проголосовавшим, увеличивая их собственный представитель. – Organiccat

+0

Спасибо. Я проголосовал за ваш комментарий, чтобы доказать свою точку зрения. ;) Но важной частью также является поиск более объективных ценностей для выражения репутации, чем мнение других пользователей. Примером может служить метрика качества предоставляемого вами контента. – relet

+0

Реклама на сайте создается по-другому. Боты были бы возможны, но сложно. Репутация создается путем взаимодействия с системой (т. Е. Добавления друзей, игры в игры и т. Д.). Это может работать довольно хорошо. – Malfist

0

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

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

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

Не уверен, что размер веб-сайта, однако, когда вы начинаете говорить о чрезвычайно большом веб-сайте, таком как опрос времени, трудно просто судить, являются ли последовательные голоса поддельными, глядя на IP-адрес. Колледжи и офисы часто могут иметь сотни людей по одному и тому же IP-адресу. Трудно сказать, является ли это одним человеком за голосом, или если один человек собирается ко всем своим друзьям на этаже общежития, говоря им, чтобы они голосовали (могут объяснять новые подписки/голоса с одного и того же IP-адреса по всему в то же время).

На самом деле нет ответа на этот вопрос, просто держите журналы мониторинга и удаляйте голоса, которые не выглядят законными.

0

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

Еще один простой способ сделать это с помощью безопасного голосования - заставить зарегистрировать и подтвердить электронную почту. Некоторые сайты bot/spam все еще могут обойти это, имея свой собственный домен, однако затем вы можете блокировать регистрацию доменов и голосование с этого сайта. Это «самый раздражающий», но наиболее трудоемкий, поэтому приводит к наименее вероятному в сочетании с IP-адресами, что приводит к большому обману.

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

1

Использование адреса IPv4 с использованием сигнатуры браузера ($ _SERVER ['HTTP_USER_AGENT']) хэша.

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

Если время слишком близко, что приводит к автоматизированному процессу, капчет будет его решать (но никто не любит перехватывать опросы).

+0

Я согласен со всеми здесь. Невозможно реально предотвратить мошенничество, но есть способы смягчения. Другие предложения по обеспечению действительной учетной записи пользователя на основе действительного адреса электронной почты (с шагом подтверждения). Продолжайте отслеживать, используйте IPv4 и хеш браузера в течение времени. Ограничение голосов пользователей только на один опрос ... Все, что добавляет немного сложности, помогает предотвратить мошенничество. – Dave

+0

Я тоже об этом подумал, но большинство крупных организаций на одном IP-телефоне, как правило, имеют те же версии браузера из моего опыта. Если у них есть разные браузеры на разных машинах, то они, вероятно, смогут установить другие браузеры, которые бы отображали проверку агента пользователя, поскольку они могли просто открыть другой браузер на этом компьютере. – Alex

+0

Не только крупные организации, но и колледжи, или общественные сети. Это часть проблемы. В IBM, например, практически невозможно скачать что-то из rapidshare бесплатно именно по этой причине. Предложение log-agent User Agent скорее всего предотвратит автоматизацию (например, используя JMeter с источником данных учетных записей и цикл 100x, поскольку JMeter по умолчанию не отправляет заголовки). Чтобы лучше понять это, я предлагаю статьи Криса Шифлетта по безопасности PHP. – Dave

0

Я бы использовал комбинацию дросселирования голоса с использованием IP-адреса и файлов cookie. Да, файлы cookie можно удалить, но это остановит злонамеренный тип человека, который также окажется идиотом.

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

Совместите эти 2 с использованием идентификатора пользователя уже, и это так, как вы можете сделать реалистично.

Смежные вопросы