php - 我的网站中的一篇帖子浏览量正在迅速增加 - 有人正在玩我的网站

标签 php mysql security

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

UPDATE tbl_threads SET  views = (views+1);

过去 4 个月以来,它在我的网站上运行良好。但今天,几分钟前,我的一篇帖子的浏览量突然开始增加到100/分钟。我认为有人(某个黑客)正在渗透我的网站。我怎样才能控制它?我该如何解决这个问题。一段时间后,又有一篇帖子的浏览量开始以同样的速度增加。当我在谷歌分析中检查流量统计时,流量是正常的。请帮助我。

最佳答案

在 session 中设置一个标志,将其标记为已计为访问者:

$_SESSION['didVisit'] = 1;

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

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

您还可以设置一个常规 cookie,指示您将用户计为一次浏览。然后,当他们进来时,在更新数据库之前先检查该 cookie 是否存在。这样,他们每次都必须删除 Cookie 才能算作新 View 。

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

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

关于php - 我的网站中的一篇帖子浏览量正在迅速增加 - 有人正在玩我的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724851/

相关文章:

php - Google Analytics(分析)检索数据

php - SoapClient 到 nusoap,Server 没有识别 HTTP Header SOAPAction 的值

PHP 和 MySQL session

android - 如何使用 perl 存储和显示 ISO-8859-1 和 UTF8 字符

c++ - 基于 C 有符号整数的攻击

c++ - 虚拟表真正存储在哪里,为什么我们不能修改它们?

php - 在 PHP 中内部加入 mongoDB

几何包的MySQL字符串编码

security - 颁发者证书的到期状态是否会影响主体的到期?

mysql - MySQL 有问题