其中一个帖子视图在我的网站上迅速增加 - 有人正在玩我的网站

时间:2013-09-10 16:59:30

标签: php mysql security

我的php网页中有一个简单的函数,可以使用以下查询来计算页面的视图。

UPDATE tbl_threads SET  views = (views+1);

过去4个月我的网站运行正常。但是今天,几分钟前,我的一篇文章的观点突然开始增加为100分钟。我认为有些人(一些黑客)正在破坏我的网站。我怎么能控制它?我该如何解决这个问题。一段时间后,又有一个帖子视图以相同的速率开始增加。当我在Google Analytics中检查我的流量统计信息时,流量正常。请帮助我。

2 个答案:

答案 0 :(得分:3)

在会话中设置一个标记为已被计为访问者的标记:

$_SESSION['didVisit'] = 1;

然后在更新数据库之前,请确保它未设置:

if( !isset( $_SESSION['didVisit'] )
    // DO DATABASE UPDATE

您还可以设置常规Cookie,指示您将用户计为视图。然后当他们进来时,在更新数据库之前先检查该cookie是否存在。通过这种方式,他们每次都必须删除他们的cookie才能算作新的视图。

如果您认为机器人正在访问您的网站,因此无法正常使用Cookie,您可以获取多个$ _SERVER信息,并且(如上面的评论中所述)尝试创建唯一的哈希和存储它在数据库中识别访客。

这些天的大多数机器人(无论如何都是友好机器人)定义了用户代理,您可以检查并忽略这些点击:http://www.monperrus.net/martin/list+of+robot+user+agentshttp://www.robotstxt.org/db.html

答案 1 :(得分:1)

仅尝试从唯一的IP地址计算页面浏览量,这样每次用户重新加载页面时页面视图都不会增加。