apache-2.2 – 如何阻止从同一主机到同一URL的重复点击?

我有一个奇怪的问题 – 在高流量的网站上(每月数百万的访问者),每天我们得到大约20个左右的情况,其中一个主机开始不断地请求同一页面,一遍又一遍 – 每秒多次,从几分钟到一整天的任何时间长度.

这次攻击显然不是恶意的,因为我已经回溯了IP地址,并将它们与我采访过的一些注册用户进行了匹配.他们说,当这种情况发生时,我们网站上的一个javascript计数器“保持刷新”,他们的计算机变得很慢,但它可以使用.它不会在每个页面加载时发生,而是偶尔发生.

日志命中具有以下特征:

>他们开始’正常’ – 第一页加载实际访问所有页面的资源,以及.PHP
>然后主机开始请求只有PHP页面,没有资源不断,通常每秒一次(但有时更快,有时慢几秒)
>远程浏览器始终是Firefox 3.5.x.
>后续点击没有推荐人,即使第一页请求有一个

我们知道如何处理这个问题.一个简单的DoS过滤器是不合适的 – 我们有这个并且触发它的阈值远远高于单个页面请求(没有相关的图像,css等).

堆栈是LAMP,Redhat安装,PHP 5.2,Apache 2.2.3,Nginx盒作为软件负载平衡器运行.

这是粉碎我们的网站 – 请帮忙!在没有好的想法的情况下,我们将编写一个虚拟过滤器,在memcached中存储IP URI的密钥,并递增每个页面请求.一旦它在一段时间内超过某个阈值,我们将进一步请求403.但是,我不认为这是处理此问题的网络堆栈中的合适位置.

感谢您的贡献!

最佳答案
根据您自己的描述,我建议您首先删除该计数器,看看这是否确实有所作为.它很容易测试,我很惊讶你还没有这样做过.

相关文章

###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...
Nginx显示500错误原因和解决方法
linux系统下启停nginx的命令
nginx 的 default_server 指令可以定义默认的 server出处理一...
Nginx是一款轻量级的 Web 服务器、反向代理服务器,由于它的...