В настоящее время мы проводим соревнования, которые продолжаются очень хорошо. К сожалению, у нас есть все те мошенники назад в бизнесе, кто выполняет сценарии, которые автоматически голосуют за их записи. Мы уже видели некоторых мошенников путем рассмотрения записей базы данных вручную - пятизвездочные оценки с тем же браузером точно все 70 минут, например. Теперь когда база пользователей растет, это становится более твердым и более твердым определить их.
Что мы делаем до сих пор:
Кто-либо знает, как мы могли найти шаблоны в нашей базе данных со Сценарием PHP или как мы могли заблокировать их более эффективно?
Любая справка очень ценилась бы...
1. Используйте recaptcha
2. Да, произвольно выбирайте варианты голосования, но не так:
-> from vote_id_1 в asdsasd_1, grdsgsdg_2,
Вместо этого используйте переменные сеанса, чтобы установить маску от vote_id_1 до asgjdas87th2ad в голосовании форма.
Я использую комбинацию CAPTCHA, проверки IP и LSO (Flash Local Shared Objects, трудно найти и удалить для обычных людей).
Мы используем комбинацию CAPTCHA и электронной почты. Пользователь получает ссылку с идентификатором GUID по почте. Эта ссылка должна быть уникальной для каждого пользователя, который пытается проголосовать. www.votesite.com/vote.aspx?guid = .... . По этой ссылке голосование подтверждается или нет. В базе данных мы проверяем уникальность комбинации адреса электронной почты и GUID.
Как насчет того, чтобы разрешить только пользователям, которые вошли в систему с openid и с reCaptcha перед отправкой голоса, и отслеживать список отправителей с тем же ip адресом.
Извините за двойной пост, но мне не разрешили разместить два URL в одном посте...
Если вы хотите создать свой собственный трекинг, возможно, эта ссылка может послужить источником вдохновения: https://panopticlick.eff.org/ Оказывается, многие браузеры могут быть однозначно идентифицированы даже без какой-либо формы отслеживания файлов cookie. Я предполагаю, что бот для голосования может дать очень специфический отпечаток пальца?
.CAPTCHA всегда хороша, хотя может "беспокоить" некоторых пользователей.
reCAPTCHA - это справедливо используемый сервис
CAPTCHA не являются серебряной пулей, пользователь может попросить свой скрипт показать ему CAPTCHA и решать их вручную, по крайней мере, несколько голосов в минуту.
Вам нужно использовать их в сочетании с другими техниками, упомянутыми здесь.
Чтобы запретить ботам голосовать, вы можете использовать CAPTCHA .
Единственное, что приходит на ум, - это использовать Captcha . Либо замысловатый с изображениями и шумом, как сервис ReCaptcha , либо очень простой и ненавязчивый, вроде «Что такое семь плюс три?». или (если вы находитесь в США): «Как зовут нашего президента?», простые вопросы здравого смысла, на которые может ответить каждый. Если вы меняете их достаточно часто, это может быть даже более эффективным, чем классическая CAPTCHA на основе изображений.
Проверьте Asirra: http://research.microsoft.com/en-us/um/redmond/projects/asirra/ Он все еще находится в стадии бета-тестирования, но это довольно круто.
Вы можете добавить капчу в форму голосования. Также будет полезно запросить подтверждение по электронной почте
Вы можете добавить поле приманки , как в Django. Скорее всего, это не защитит вас от мошенников, которые намеренно хотят изменить вашу конкуренцию, но, по крайней мере, у вас будет меньше спамеров, которые будут «проезжать мимо», о которых нужно будет дополнительно позаботиться.
Шаблон Голосуйте за продвижение (возможно, вы знаете об этом ) есть раздел о том, как избежать игр, но его сложно полностью избежать.Учитывая ваши действия на сегодняшний день, я бы подумал об использовании взвешивания, например, рассмотрите разумный уровень голосования в течение определенного периода времени, скажем, 10 голосов за голос в час (только пример, а не руководство), а для избыточных голосов вес следующих 10 на 90%. (т.е. считайте только 9), следующие 10 на 80% и так далее. Это совет Yahoo по играм в рамках этой схемы:
Системы голосования сообщества действительно создают ряд проблем. В частности, вероятность того, что члены сообщества могут попытаться обмануть систему из любого количества мотивов:
злой умысел - возможно, против другого члена сообщества и вклад этого участника.
выгода - получение некоторого вознаграждения, денежного или иного, от влияния на размещение определенных элементов в пуле)
или общей повестки дня - всегда продвижение определенных точек зрения или {{ 1}} политические заявления, без особого внимания к фактическому качеству содержания, за которое проводится голосование.
Есть несколько способов попытаться защититься от этого типа злоупотреблений. Хотя ничто не может полностью остановить игру . Вот несколько способов минимизировать или помешать обидчикам в их усилиях:
Голосуйте за вещи, а не за людей. В соответствии с общей стратегией Yahoo, не предлагайте пользователям возможность напрямую голосовать за другого пользователя: за его внешность, симпатию, интеллект или что-нибудь еще. Сообщество может голосовать за вклад человека, но не за качество его характера.
Подумайте об ограничении количества голосов. o Разрешить пользователю только определенное количество голосов в течение заданного периода времени. o Ограничьте количество раз (или скорость, с которой) пользователь голосует против содержания определенного пользователя. (Чтобы предотвратить атаки ad-hominem.)
Взвесьте другие факторы, помимо количества голосов. Digg, для экземпляра , не рассчитывает свой рейтинг Digg исключительно на основе количества голосов, полученных за публикацию. Их алгоритм также учитывает: "источник истории (будь то репост в блоге или исходная история), историю пользователей, уровни трафика категории, история подпадает под и отчеты пользователей ". Они часто обновляют этот алгоритм. Рассмотрите возможность сохранения точного алгоритма в секрете от сообщества или обсудите только факторизованные входные данные в общих чертах.
Если доступна информация о взаимоотношениях, рассмотрите возможность взвешивания голосов пользователя соответственно. Возможно, запретите пользователям, имеющим формальные отношения, голосовать за материалы друг друга.
Хотя в настоящее время это популярный шаблон в Интернете, важно учитывать контексты, в которых мы его используем . Очень активные и популярные сообщества (Digg - отличный пример), допускающие голосование сообщества , также могут вызвать определенный негатив духа (скупые комментарии, самоуверенные клики, групповые атаки на "чужеродные" точки зрения).
Если вы действительно беспокоитесь об этом, то вы должны сделать что-то вроде проверки электронной почты, что может быть достаточно для блокировки большинства мошенников.
Также зависит от того, захотят ли несколько человек за NAT голосовать за один и тот же вариант (например, любимая школа).
Любая схема, которую вы создадите, может быть обманута.
EDIT: Как уже предлагали другие, вы можете использовать CAPTCHA, например reCAPTCHA, чтобы блокировать автоматических ботов и уменьшить вероятность повторного голосования. Ценой снижения вероятности того, что люди вообще будут голосовать.
Это скорее общая стратегия, которую можно сочетать со многими другими методами. Не сообщайте спамеру о его успехе.
Вы можете либо полностью скрыть текущие результаты, либо показывать только проценты без абсолютного числа голосов, либо задерживать показ голосов.
Также общая стратегия. Если у вас есть основания предполагать, что голос принадлежит спамеру, подсчитайте его голос и отметьте его как недействительный, а в конце удалите недействительные голоса.
Используйте CAPTCHA. Если ваша каптча сломана, используйте лучшую.
Ограничьте количество голосов, которое может отдать IP-адрес за определенный промежуток времени.
Если предположить, что один пользователь использует один IP-адрес, можно ограничить количество голосов по этому IP-адресу. Однако это предположение обычно справедливо только для частных домохозяйств.
Используйте подтверждение по электронной почте и разрешайте только один голос на один Email. Проверьте свою базу данных вручную, чтобы убедиться, что они используют "бросовые" письма.
Обратите внимание, что вы можете добавить +foo
к вашему имени пользователя в адресе электронной почты. username@example.com
и username+foo@example.com
доставят письмо на один и тот же аккаунт, так что помните об этом, проверяя, не проголосовал ли уже кто-то.
Рандомизация порядка выбора. Это может занять некоторое время.
Один из методов подделки голосования - перехват http-запроса от действующего браузера, например Firefox, и имитация его с помощью скрипта, это не так просто сделать, когда вы используете шифрование.
Если спамер голосует через прокси, вы можете проверить заголовок X-Forwarded-For.
Попробуйте посмотреть, загружает ли клиент все некэшированные ресурсы. Многие спам-боты не делают этого. Я никогда не пробовал, просто знаю, что обычно сайты для голосования это не проверяют.
Примером может быть встраивание в ваш html, причем a.gif - это некоторое изображение размером 1x1 пиксель. Затем вы должны установить http-заголовок для запроса
GET /a.gif
с Cache-Control "no-cache, must-revalidate"
. Вы можете установить http-заголовки в Apache с помощью вашего .htaccess
файла, как здесь. (спасибо Jacco)
[Edit 2010-09-22]
Вы пробовали делать дактилоскопию браузера? Проверьте этот открытый исходный код от EFF: https://panopticlick.eff.org/ Может быть использован для идентификации одного человека, похожего на 500-1500 в мире (!).
Итак, если каждый когда-нибудь захочет устроить соревнование, в котором люди могут что-то выиграть и захотят использовать систему рейтинга, основанную на сообществе ... здесь я делюсь некоторым опытом:
Плохие:
1) Во-первых, это не может быть сделано безопасность на 100%
2) охватить массу пользователей, которая отфильтровывает все бессмысленные оценки, очень сложно
3) Забудьте о звездных рейтингах в этом случае ... их всегда либо 5 звезд, либо 1 звезда
Хорошее
1) Не давайте им ориентировки относительно того, где они находятся ... Мы заменили вид «Порядок по месту» случайным представлением ТОП-100 (только 30 лучших будут выиграть цену) ... Это действительно помогло, потому что многие пользователи потеряли интерес, как только они не увидели, где они находятся.
2) Не разрешайте такие голосования, как: 1x5_Stars 40x1_Star ... Просто разрешите пользователям, которые голосуют честно ...
3) Большинство из них ведут себя немного глупо ... Вы их увидите в ваших журналах и отследить, кто голосует справедливо, а кто несправедливо ... Поиск закономерностей ...
** УДАЧИ ;-) **