Охотничьи мошенники в голосовании

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

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

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

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

Любая помощь будет очень оценена …

Исправление прямой обратной связи

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

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

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

Голосование

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

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

Защитный код

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

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

Проверка IP-адресов

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

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

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

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

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

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

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

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

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

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

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

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

HTTPS

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

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

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

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

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

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

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

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

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

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

Evercookie

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

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

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

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

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

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

EDIT: Как и все остальные, вы можете использовать CAPTCHA, такую ​​как reCAPTCHA, для блокировки автоматических ботов и сделать людей менее вероятными для повторного голосования. За счет того, что люди менее склонны голосовать вообще.

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

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

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

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

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

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

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

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

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

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

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

Проверьте Asirra: http://research.microsoft.com/en-us/um/redmond/projects/asirra/ Он по-прежнему находится в бета-версии, но это довольно круто.

Чтобы предотвратить голосование ботов, вы можете использовать CAPTCHA .

Единственное, что приходит на ум, это использовать Captcha . Или сложный с фотографиями и шумом, как сервис ReCaptcha , или очень простой и ненавязчивый, например «Что такое семь плюс три?». или (если вы находитесь в США), «Что такое фамилия нашего президента», простые вопросы здравого смысла, на которые каждый может ответить. Если вы меняете их достаточно часто, это может быть даже более эффективным, чем классический CAPTCHA на основе изображений.

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

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

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

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

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

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

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

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

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

3) Большинство из них действуют немного глупо … Вы увидите их в своих журналах и сможете проследить, кто честен и кто несправедлив … Ищите шаблоны …

**УДАЧИ ðŸ˜‰ **

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

reCAPTCHA – довольно используемая услуга

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

Мы используем комбинацию CAPTCHA и электронной почты. Пользователь получает ссылку с GUID по почте. Это должно быть уникальным для каждого пользователя, который пытается проголосовать. http://www.votesite.com/vote.aspx?guid = ….. Используя эту ссылку, голосование подтверждается или нет. В базе данных мы проверяем комбинацию адреса электронной почты и идентификатора GUID, чтобы быть уникальным.

Я использую комбинацию CAPTCHA, проверки IP и LSO (Flash Local Shared Objects, трудно найти и удалить для простых людей).

1.Использование recaptcha
2. Дайте случайные варианты голосования, но не так:
-> from vote_id_1 – asdsasd_1, grdsgsdg_2,
Вместо этого используйте переменные сеанса для установки маски с vote_id_1 на asgjdas87th2ad в форме голосования.

Как насчет некоторого постходового стохастического анализа , такого как анализ временных рядов – поиск периодичности в событиях конкретного (ip, browser, vote) ? Затем вы можете назначить вероятность каждой такой группе событий, что она принадлежит одному человеку, и либо отбросить все такие группы событий за пределами некоторого уровня вероятности, либо использовать какой-то весовой коэффициент для снижения веса в соответствии с вероятностью.

Посмотрите в R, он содержит много полезных пакетов анализа.

Проверьте информацию о домене электронной почты, которую они используют. У меня была та же проблема, и я обнаружил, что все они зарегистрированы в том же регистранте. Я написал это здесь: http://tincan.co.uk/659/news/competition-spammers.html

Теперь я фильтрую информацию DNS для электронной почты, используемой при регистрации.