Обнаружение злоупотреблений для пост-рейтинговой системы - PullRequest
3 голосов
/ 29 мая 2010

Я использую плагин wordpress под названием «GD Star Rating», чтобы мои пользователи могли голосовать за истории, которые я публикую на одном из моих сайтов. http://everydayfiction.com/ В последнее время мы много злоупотребляем системой. Истории, за которые явно проголосовали искусственно. «GD Star Rating» создает несколько подробных журналов, когда пользователь голосует за историю. В том числе; IP, время голосования и user_adgent, т. Д ..

Например, эта история имеет 181 голос при среднем 5,7 http://www.everydayfiction.com/snowman-by-shaun-simon/ Большинство других историй получают только около 40 голосов в день.

  • Сначала я подумал, что история попала на сайт социальных закладок Digg, Stumbleupon и т. Д., Но после проверки журналов я обнаружил, что эта история получает столько же трафика, сколько и обычная история ~ 2к-ки.

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

    ВЫБРАТЬ ip, СЧЕТ (*) как количество ОТ wp_gdsr_votes_log ГДЕ id = 3932 ГРУППА ПО (ip) ЗАКАЗАТЬ ПО count DESC

  • Далее я подумал, что использование может использовать прокси для голосования по истории. Я проверил это, сгруппировав все браузеры user_agent вместе, чтобы увидеть, нет ли одного браузера, голосующего перпендикулярно. Не более 7 пользователей, которые использовали подобный браузер, но голосовали время от времени (1-5), никаких доказательств неправильного поведения.

    ВЫБРАТЬ user_agent, СЧЕТ (*) как количество ОТ wp_gdsr_votes_log ГДЕ id = 3932 ГРУППА ПО (user_agent) ЗАКАЗАТЬ ПО count DESC

  • Я также проверяю, все ли голоса пришли одновременно. Может быть, у кого-то есть действительно интересный бот, который может изменить user_adgent и использовать прокси-серверы, т. Д. Максимум 5 голосов пришло за 2 минуты друг от друга. Кажется, что нет никакой закономерности в том, как люди голосуют (т.е. 5 голосов не приходят раз в минуту)

    ВЫБРАТЬ * ОТ wp_gdsr_votes_log ГДЕ id = 3932 И голосовать = 5 ЗАКАЗАТЬ wp_gdsr_votes_log. voted DESC

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

Я ищу предложения по проверке на предмет выявления злоупотреблений.

Редактировать

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

SELECT id, `ip`, COUNT(*) as count FROM `wp_gdsr_votes_log` GROUP BY (`ip` ) ORDER BY `count` ASC 

Редактировать 2

Ого, похоже, один из участников группы из http://www.mychemicalromance.com/ (ритм-гитарист) разместил ссылку на статью в своем твиттере и на сайте группы. Я просто удивлен, что не было большого увеличения посетителей, только люди, голосующие за историю ..

Ответы [ 3 ]

3 голосов
/ 29 мая 2010

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

Одна вещь, которую вы можете проверить, это процент голосов по сравнению с трафиком по сравнению с другими историями, которые похожи на трафик.

Я прочитал это. Хороший рассказ. Я также проголосовал. ;)

2 голосов
/ 29 мая 2010

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

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

Проверьте журналы вашего веб-сервера на наличие реферера, чтобы увидеть, как они находят статью.

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

0 голосов
/ 19 июня 2011

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

...