Обнаружение злоупотреблений для пост-рейтинговой системы
Я использую плагин 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 и т. Д., Но после проверки логов я обнаружил, что эта история получает столько же трафика, сколько и обычная история ~2k-3k.
Я проверил, все ли голоса за эту перпендикулярную историю происходят с одного и того же IP-адреса. Я мог видеть это, если бы пользователь был в школьной компьютерной лаборатории, используя все свои лабораторные компьютеры, чтобы проголосовать за эту историю. Не один дубликат IP-адреса в журнале для этой истории.
ВЫБРАТЬ
ip
, COUNT(*) как считать отwp_gdsr_votes_log
ГДЕid
=3932 ГРУППА BY (ip
) СОРТИРОВАТЬ ПОcount
DESCЗатем я подумал, что использование может использовать прокси для голосования в истории. Я проверил это, сгруппировав все браузеры user_agent вместе, чтобы увидеть, нет ли одного браузера, голосующего перпендикулярно. Максимум 7 пользователей, которые использовали подобный браузер, но голосовали время от времени (1-5), никаких доказательств неправильного поведения.
ВЫБРАТЬ
user_agent
, COUNT(*) как считать отwp_gdsr_votes_log
ГДЕid
=3932 ГРУППА BY (user_agent
) СОРТИРОВАТЬ ПОcount
DESCЯ также проверяю, все ли голоса пришли одновременно. Может быть, у кого-то есть действительно интересный бот, который может изменить user_adgent и использовать прокси-серверы, т. Д.... Максимум 5 голосов пришло за 2 минуты друг от друга. Кажется, что нет никакой закономерности в том, как люди голосуют (т.е. 5 голосов не приходят раз в минуту)
ВЫБРАТЬ ИЗ
wp_gdsr_votes_log
ГДЕid
=3932 И голосование =5 ЗАКАЗАТЬwp_gdsr_votes_log
,voted
DESC
Очевидное решение этой проблемы - заставить людей войти в систему, прежде чем они смогут голосовать. Но я бы предпочел не идти по этому пути, если это не является абсолютно необходимым.
Я ищу предложения для вещей, чтобы проверить, чтобы обнаружить злоупотребление.
редактировать
Другая вещь, которую я только что проверил, состояла в том, чтобы видеть, были ли все люди, которые голосовали по этой истории о perdicutre, впервые голосующими на сайте по 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 ответа
Может быть, это не проблема вообще. Может быть, вы натолкнулись на историю, о которой больше людей заботились, чтобы на самом деле голосовать.
Одна вещь, которую вы можете проверить, это процент голосов по сравнению с трафиком по сравнению с другими историями, которые похожи на трафик.
Я читаю это. Хороший рассказ. Я также проголосовал.;)
Вы должны убедиться, что ваше голосование как минимум устанавливает сессию, когда они впервые попадают на страницу, и что сессия все еще активна, когда они голосуют. Если вам по крайней мере не требуется какой-либо токен, который вы укажете, клиент может публиковать данные на вашем сервере в течение всего дня, подделывая IP-адреса и пользовательских агентов.
Если вы используете сеансы или какой-либо другой тип доступа к токену, который вызывает использование ваших форм, то, согласно имеющейся у вас информации, кажется, что голоса действительно поступают с разных компьютеров.
Проверьте журналы своего веб-сервера на наличие реферера, чтобы увидеть, как они находят статью.
Если вы не можете доказать, что голосование недействительно, я думаю, вы должны его принять.
Если в вашей рейтинговой системе есть изъян, скорее всего, она находится в самой форме. Простой F5/ обновление может получить несколько голосов, если проверка не выполняется. Должен быть хотя бы сеанс или идентификатор пользователя, а также уникальный токен, который вы можете проверить, чтобы избежать эксплойтов F5.