我正在使用一个名为“GD Star Rating”的 wordpress 插件来允许我的用户对我发布到我的网站之一的故事进行投票。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 地址。
SELECT
ip
, COUNT(*) as count FROMwp_gdsr_votes_log
WHEREid
=3932 GROUP BY (ip
) ORDER BYcount
DESC接下来,我认为一个用途可能是使用代理来投票赞成一个故事。我通过将所有浏览器 user_agent 组合在一起来检查这一点,以查看是否有单个浏览器以垂直方式投票。最多 7 个用户使用类似的浏览器但偶尔投票(1-5),没有证据表明有错误行为。
SELECT
user_agent
, COUNT(*) as count FROMwp_gdsr_votes_log
WHEREid
=3932 GROUP BY (user_agent
) ORDER BYcount
DESC我还检查是否所有的选票都同时进入。也许有人有一个非常有趣的机器人,可以更改 user_adgent 并使用代理,等等......在 2 分钟内最多有 5 票。人们投票的方式似乎没有任何规律(即5票不会每分钟出现一次)
SELECT * FROM
wp_gdsr_votes_log
WHEREid
=3932 AND vote=5 ORDER BYwp_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/的一位乐队成员(节奏吉他手)在他们的推特和乐队网站上发布了关于这篇文章的链接。我只是感到惊讶的是,访问者并没有大幅增加,只有对这个故事进行投票的人..