3

我正在使用一个名为“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 FROM wp_gdsr_votes_logWHERE id=3932 GROUP BY ( ip) ORDER BY countDESC

  • 接下来,我认为一个用途可能是使用代理来投票赞成一个故事。我通过将所有浏览器 user_agent 组合在一起来检查这一点,以查看是否有单个浏览器以垂直方式投票。最多 7 个用户使用类似的浏览器但偶尔投票(1-5),没有证据表明有错误行为。

    SELECT user_agent, COUNT(*) as count FROM wp_gdsr_votes_logWHERE id=3932 GROUP BY ( user_agent) ORDER BY countDESC

  • 我还检查是否所有的选票都同时进入。也许有人有一个非常有趣的机器人,可以更改 user_adgent 并使用代理,等等......在 2 分钟内最多有 5 票。人们投票的方式似乎没有任何规律(即5票不会每分钟出现一次)

    SELECT * FROM wp_gdsr_votes_logWHERE id=3932 AND vote=5 ORDER BY wp_gdsr_votes_logvotedDESC

这个问题的明显解决方案是强制人们在被允许投票之前登录。但除非绝对必要,否则我宁愿不必走那条路。

我正在寻找有关测试以检测滥用行为的建议。

编辑

我刚刚测试的另一件事是查看是否所有为这个 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/的一位乐队成员(节奏吉他手)在他们的推特和乐队网站上发布了关于这篇文章的链接。我只是感到惊讶的是,访问者并没有大幅增加,只有对这个故事进行投票的人..

4

3 回答 3

3

也许这根本不是问题。也许你偶然发现了一个更多人关心并实际投票的故事。

您可能会检查的一件事是与其他具有类似流量的故事相比,投票与流量的百分比。

我读了。不错的故事。我也投了票。;)

于 2010-05-28T22:48:46.110 回答
2

您必须确保您的投票至少在他们第一次点击页面时建立了一个会话,并且在他们投票时会话仍然处于活动状态。如果您至少不需要您指定的某种类型的令牌,则客户端可以整天将数据发布到您的服务器,从而欺骗 IP 地址和用户代理。

如果您正在使用会话或其他类型的令牌访问来强制使用您的表单,那么根据您目前掌握的信息,投票似乎确实来自不同的计算机。

检查您的网络服务器日志以了解引荐来源网址,以了解他们是如何找到文章的。

如果你不能证明一个投票是无效的,那么我认为你必须接受它。

于 2010-05-28T23:41:21.077 回答
0

如果您的评分系统存在缺陷,则很可能与表单本身有关。如果不进行检查,一个简单的 F5/refresh 可能会获得多票。至少必须有一个会话或用户 ID 以及一个可以检查的唯一令牌,以避免 F5 漏洞利用。

于 2011-06-19T14:08:53.767 回答