【问题标题】:Detecting abuse for post rating system检测帖子评级系统的滥用情况
【发布时间】:2011-02-25 08:27:58
【问题描述】:

我正在使用一个名为“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_log WHERE id=3932 GROUP BY (ip) ORDER BY count DESC

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

    SELECT user_agent, COUNT(*) as count FROM wp_gdsr_votes_log WHERE id=3932 GROUP BY (user_agent) ORDER BY count DESC

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

    SELECT * FROM wp_gdsr_votes_log WHERE id =3932 AND vote=5 ORDER BY 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/(节奏吉他手)的一位乐队成员在他们的推特和乐队网站上发布了一个关于这篇文章的链接。我只是感到惊讶的是,访问者并没有大幅增加,只有对故事进行投票的人..

【问题讨论】:

  • 您是否检查过这些选民是否第一次看到您的网站?换句话说,他们是一直潜伏,直到现在才决定从木制品中走出来,还是这些都是全新的?
  • 如果您有数据,另一件要查看的是引荐来源网址。
  • 最后,是否可以在不记录的情况下进行投票?
  • @Chris Lively 嗯,你说得对。对我来说检查这一点并不容易,因为访问日志来自 apache 并存储在文本文件中,并且投票在 MySQL 数据库中。我会看看我能做什么并报告结果。
  • @Chris Lively,很遗憾,我没有与投票信息一起存储的推荐信息。 (再次在 apache 日志中)我会看看我能做什么。不,没有记录就不可能投票,我仔细检查了数据库中的投票是否与屏幕上显示的投票相加,以防万一 wordpress 插件出现问题。

标签: sql wordpress statistics abuse


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,这是我检查的第一件事。大多数故事每天吸引 2-3k 访问者。这个故事有相同的点击率,但 4 倍时间的票数大多是正面的。
【解决方案2】:

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

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

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

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

【讨论】:

  • 哇,好的,看起来mychemicalromance.com 的一位乐队成员(节奏吉他手)在他们的推特和乐队网站上发布了关于这篇文章的链接。我只是感到震惊的是,访问者并没有大幅增加,只有人们投票支持这个故事..
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2010-12-29
    相关资源
    最近更新 更多