Охота на читеров в конкурсе на голосование - PullRequest
62 голосов
/ 25 февраля 2010

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

Что мы делаем до сих пор:

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

Кто-нибудь знает, как мы могли бы найти шаблоны в нашей базе данных с помощью сценария PHPили как мы могли бы эффективнее их блокировать?

Любая помощь будет очень признательна ...

Ответы [ 19 ]

78 голосов
/ 25 февраля 2010

Прямое устранение обратной связи

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

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

  • Pro: хорошо против всех методов
  • Con: если мошенничество носит массовый характер, процентное отображение и задержка не будут эффективными

Пометка голосования

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

  • Pro: хорошо против всех обнаруживаемых спам-атак
  • Против: искажает голос, сложнее настроить, ложные срабатывания

Защитный код

Используйте CAPTCHA . Если ваша капча сломана, используйте лучшую.

  • Pro: хорошо против всех автоматизированных скриптов.
  • Con: бесполезно против фаригуляция

проверка IP

Ограничить число голосов, которые IP-адрес может подать за промежуток времени.

  • Pro: Хорошо против случайных парней, которые постоянно нажимают F5 в своем браузере
  • Pro: простота реализации
  • Con: Бесполезно против Pharyngulation и сложных скриптов, использующих прокси-серверы.
  • Con: IP-адрес иногда отображается для разных пользователей

Проверка реферера

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

  • Pro: простота реализации
  • Pro: в некоторой степени хорошо против простой фарингуляции
  • Con: Очень легко обойти с помощью автоматизированных сценариев

Подтверждение по электронной почте

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

Обратите внимание, что вы можете добавить +foo к вашему имени пользователя в адресе электронной почты. username@example.com и username+foo@example.com будут доставлять почту на одну и ту же учетную запись, поэтому помните, что при проверке, если кто-то уже проголосовал.

  • Pro: хорошо против простых спам-скриптов
  • Con: сложнее реализовать
  • Con: Некоторым пользователям это не понравится

Рандомизация HTML-форм

Рандомизировать порядок выбора. Это может занять некоторое время, чтобы они узнали.

  • Pro: приятно иметь в любом случае
  • Con: после обнаружения очень легко обойти

HTTPS

Один из способов фальсификации голосования - захватить http-запрос из действующего браузера, такого как Firefox, и скопировать его с помощью скрипта, это не так просто при использовании шифрования.

  • Pro: приятно иметь в любом случае
  • Pro: хорошо против очень простых скриптов
  • Con: сложнее настроить

Проверка прокси

Если спамер голосует через прокси, вы можете проверить заголовок X-Forwarded-For .

  • Pro: хорошо против более продвинутых скриптов, использующих прокси
  • Con: некоторые законные пользователи могут быть затронуты

Проверка кэша

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

Примером может быть встраивание <img src="a.gif" /> в ваш html, при этом a.gif будет изображением размером 1x1 пиксель. Затем необходимо установить заголовок http для запроса GET /a.gif с помощью Cache-Control "no-cache, must-revalidate". Вы можете установить заголовки http в Apache с помощью файла .htaccess, например this . (спасибо Жако)

  • Pro: насколько я знаю, необычный метод
  • Con: немного сложнее настроить

[Редактировать 2010-09-22]

Evercookie

  • Так называемый evercookie может быть полезен для отслеживания спамеров на основе браузера
6 голосов
/ 25 февраля 2010

Вы пытались сделать дактилоскопию в браузере? Проверьте этот открытый исходный код от EFF: https://panopticlick.eff.org/ Может использоваться для идентификации одного человека, похожего на 500-1500 в мире (!).

4 голосов
/ 25 февраля 2010

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

2 голосов
/ 25 февраля 2010

Выезд Асирра: http://research.microsoft.com/en-us/um/redmond/projects/asirra/ Это все еще в бета-версии, но это довольно круто.

2 голосов
/ 25 февраля 2010

Шаблон Проголосовать за продвижение (о котором вы, возможно, знаете) имеет раздел о том, как можно противостоять играм, но его совсем непросто избежать. Учитывая ваши действия на сегодняшний день, я хотел бы рассмотреть возможность использования взвешивания, например, рассмотреть разумный уровень голосования в течение определенного периода времени, скажем, 10 голосов за такт в час (просто пример, а не руководство), а для лишних голосов вес следующих 10 составляет 90%. (т.е. только счет 9), следующие 10 на 80% и так далее. Вот совет Yahoo по играм в этом паттерне:

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

  • злоба - возможно, против другого члена сообщества, и это взносы участника.

  • выгода - для получения некоторого вознаграждения, денежного или иного, от влияющих на размещение определенных предметы в пуле)

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

Есть несколько способов попытаться защитить от этого типа злоупотребление. Хотя ничто не может остановить игру в целом. Вот несколько способов свести к минимуму или помешать нарушителям в их усилия:

  • Голосуйте за вещи, а не за людей. В соответствии с общей стратегией Yahoo, не предлагать пользователям возможность напрямую голосовать за другого пользователя: их выглядит, их привлекательность, интеллект или что-то еще. Это ОК для сообщества, чтобы проголосовать вклад человека, но не на качество их характера.

    • Рассмотрим ограничение голосов. o Разрешить пользователю только определенное количество голосов в пределах данного временной период. o Ограничить количество голосов (или скорость, с которой) голосует пользователь. вниз контент конкретного пользователя. (Для предотвратить атаки ad-hominem.)

    • Взвесьте другие факторы, помимо количества голосов. Digg, для Например, не рассчитывает их Digg-оценка исключительно по количеству голосов за представление получает. Их Алгоритм также учитывает: «история источник (это репост блога, или оригинальная история), история пользователя, трафик уровни категории история падает под, и пользовательские отчеты. "Они обновляют этот алгоритм часто. Рассматривать сохраняя точный алгоритм в секрете от сообщества, или только обсудить факторированные входные данные в общих выражениях.

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

Хотя сейчас это популярное шаблон в Интернете, важно рассмотреть контексты, в которых мы используем Это. Очень активный и популярный сообщества (Digg отличный пример), которые позволяют голосование сообщества может также порождать определенный негатив духа клики, групповые атаки на «выбросы» точки зрения).

2 голосов
/ 25 февраля 2010

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

Также это зависит от того, могут ли несколько человек за NAT хотеть голосовать за один и тот же вариант (например, любимую школу).

Любая созданная вами схема может быть использована.

РЕДАКТИРОВАТЬ: Как и все остальные, вы можете использовать CAPTCHA , например, reCAPTCHA , чтобы блокировать автоматических ботов и снизить вероятность повторного голосования. Ценой того, чтобы сделать людей менее склонными голосовать вообще.

1 голос
/ 19 марта 2010

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

Плохое:
1) Сначала его нельзя сделать безопасным на 100%
2) достичь массы пользователей, отфильтровывающих все глупые рейтинги, очень сложно 3) Забудьте о звездных рейтингах в этом случае ... их всегда либо 5 звезд, либо 1 звезда

Добро
1) Не указывайте им, где они находятся ... Мы заменили представление "Заказ по месту" на случайное представление ТОП-100 (только 30 лучших выиграют цену) ... Это действительно помогло, потому что многие пользователи потеряли интерес, как только увидели, где они находятся.

2) Не разрешать такие голосования, как: 1x5_Stars 40x1_Star ... Просто разрешать пользователям, которые голосуют честно ...

3) Большинство из них ведут себя немного глупо ... Вы увидите их в своих журналах и сможете отследить, кто голосует честно, а кто нечестно ... Поиск шаблонов ...

** УДАЧИ ;-) **

1 голос
/ 25 февраля 2010

Извините за двойной пост, но мне не разрешалось размещать два URL в одном посте ...

Если вы хотите создать собственное отслеживание, возможно, эта ссылка может послужить источником вдохновения: https://panopticlick.eff.org/ Оказывается, что многие браузеры могут быть однозначно идентифицированы, даже без какой-либо формы отслеживания файлов cookie. Я предполагаю, что бот-голос может дать очень специфический отпечаток?

1 голос
/ 25 февраля 2010

Вы можете добавить поле приманки , как в Django. Скорее всего, это не защитит вас от мошенников, которые намеренно хотят поменять вашу конкуренцию, но, по крайней мере, у вас будет меньше спамеров «попутчиков», чтобы дополнительно позаботиться.

1 голос
/ 25 февраля 2010

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

Вам необходимо использовать их в сочетании с другими методамиупоминается здесь.

...