你如何防止页面浏览游戏?

时间:2011-03-02 17:35:47

标签: algorithm pageviews

假设我有一个包含网页的网站。页面根据查看的次数进行排名。页面排名很高,因为它会使我的搜索结果显示得更高。因此,页面的作者可能会尝试对系统进行游戏以增加该特定页面的视图。

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

我提出了以下“计划”:

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

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

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

这不是一个完美的解决方案,所以我很乐意听取您的建议和/或意见。

2 个答案:

答案 0 :(得分:4)

不要阻止:监视和处理。

我会使用一种非常不同的方法。让页面视图保持不变,但报告到位以查看视图游戏。如果页面被游戏,您可以找出谁负责,给他们一个警告和页面视图惩罚。如果它继续,禁止他们。

答案 1 :(得分:2)

我认为您应该考虑浏览器的报告特征。浏览器指纹识别之前已经完成并且得到了很好的宣传。然后,您可以确定一些非常先进的启发式方法,以确定同一用户是否正在尝试为您提供游戏。但是,当然不要宣传你正在使用浏览器指纹识别。此外,它不会停止隐身模式,但除了您当前面向IP的策略之外,我只是想再给您一个思路。