【问题标题】:How do you prevent gaming of page views?您如何防止页面浏览量游戏?
【发布时间】:2011-03-02 17:35:47
【问题描述】:

假设我有一个带有页面的网站。页面根据被查看的次数进行排名。页面排名很高是很好的,因为它会使其在我的搜索结果中显示得更高。因此,页面的作者可能会尝试与系统博弈以增加该特定页面的浏览量。

那么如何在保持准准确计数的同时防止这种情况发生?

我想出了以下“方案”:

用户在每个会话中只能影响一次页面查看。这是我通常所期望的。如果用户稍后返回该站点并再次查看该页面,则应计为另一次页面查看。

问题在于,这使得页面视图增量容易受到在每次请求之前清除其 cookie 的脚本的攻击。解决此问题的最简单方法是保存 ip-address 并只允许相同的 ip-address 增加一次页面计数。然而,这有几个主要缺点;首先,这可能会占用大量存储空间,其次会阻止大型 LAN 上的用户增加页面计数。最后,用户不能从同一个 ip 重新访问页面并多次增加页面浏览量。我可以忍受它,但宁愿没有它。

我能想到的最佳方法是保存最后 X 个 IP 地址,并且不要让这些 IP 地址中的任何人影响页面查看次数。这将有效地阻止任何(简单)脚本提高页面浏览量。此外,为实际观看次数的显示添加延迟可能是一个好主意(基本上保留两个计数和一个日期时间字段,用于“显示”计数最后一次更新为“实际”算,我相信是在 SE 网站上完成的)。

这不是一个完美的解决方案,所以我很高兴听到您的建议和/或 cmets。

【问题讨论】:

  • Furthermore it would probably be a good idea to add a delay to the diplay of actual view count
  • 有一个“你是一个混蛋用户吗?”在允许他们进入网站之前进行测试。如果他们失败了,不要让他们进来。:-)
  • @glowcoder,呵呵,但是那个网站会有用户吗?

标签: algorithm pageviews


【解决方案1】:

不要阻止:监控和处理。

我会使用一种非常不同的方法。让页面浏览量保持不变,但有适当的报告以寻找浏览游戏。如果一个页面被欺骗,你可以找出谁应该负责,给他们一个警告和页面浏览惩罚。如果它继续,禁止他们。

【讨论】:

  • 监控/处理预防不是更好吗? +1
  • 这取决于。游戏现在有问题吗?我的意思是,人们目前是否经常玩这个系统并且需要防止它?没有必要建立一个系统来防止没有发生的问题。
  • 我认为这是一个很好的观点。如果您知道自己在寻找什么,那么游戏行为应该是相当明显的。弄清楚你的系统需要做什么,然后找出表明有人在玩游戏的行为模式,然后你就可以采取行动了。
  • @glowcoder。不,目前不是问题,系统处于开发阶段,我只是想加入一些简单的预防机制。实施起来并不需要付出巨大的努力,但您的观点仍然很好。
  • @Klaus:我不知道是否更容易,但我认为它更可靠。 . .也就是说,您永远无法完全弄清楚页面浏览量(如果某人禁用了 cookie 或清除了缓存,确实没有办法肯定地识别某人),但我认为您可以高度准确地查明游戏活动.
【解决方案2】:

我认为您也应该考虑浏览器的报告特性。浏览器指纹识别之前已经完成并且广为人知。然后,您可以找出一些非常高级的启发式方法来确定同一用户是否试图与您博弈。但是,当然不要宣传您正在使用浏览器指纹识别。此外,它不会停止隐身模式,但除了您当前的面向 IP 的策略之外,我只是想为您提供另一种思路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    相关资源
    最近更新 更多