Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中滥用客户端的跟踪和测试_Php_Monitoring_Httprequest_Http Response Codes - Fatal编程技术网

PHP中滥用客户端的跟踪和测试

PHP中滥用客户端的跟踪和测试,php,monitoring,httprequest,http-response-codes,Php,Monitoring,Httprequest,Http Response Codes,现在有一个主题可以从很多方面来研究。希望我能够在描述我的问题并开始获得建议时消除混淆 我正在开发一个网站,将取代现有的一个。从历史上看,我们遇到的问题之一是蜘蛛机器人进入并吸收所有内容。现在我们不介意下载内容。事实上,我们对此感到高兴,但是一些批量下载程序和下载加速器在当前网站上出现了问题 我所寻找的是一些东西,坐在我的php的开始,几乎首先运行。它获取页面请求的指纹(ip、引用者、请求uri、cookies、会话id等等),并将其传递给…某物。然后将指纹与最后一秒或三秒钟内的指纹进行比较。然后

现在有一个主题可以从很多方面来研究。希望我能够在描述我的问题并开始获得建议时消除混淆

我正在开发一个网站,将取代现有的一个。从历史上看,我们遇到的问题之一是蜘蛛机器人进入并吸收所有内容。现在我们不介意下载内容。事实上,我们对此感到高兴,但是一些批量下载程序和下载加速器在当前网站上出现了问题

我所寻找的是一些东西,坐在我的php的开始,几乎首先运行。它获取页面请求的指纹(ip、引用者、请求uri、cookies、会话id等等),并将其传递给…某物。然后将指纹与最后一秒或三秒钟内的指纹进行比较。然后,它根据一些预先配置的阈值返回一条消息,该阈值用于处理请求

一些阈值是:

  • 用户在过去0.n秒内请求了>x个页面
  • 用户在<0.n秒内请求了相同的页面
  • 用户在过去n秒内已向表单提交了相同的数据
你看,我在看一些很紧的窗户。检测这样的事情是否可行?我能用某种文件或数据库数据源来做吗?无论我用什么来存储页面加载之间的指纹,都会经历大量的搅动,因为大多数数据都会被保存一两秒钟。我是否应该有一些东西来解析apache日志以检查阈值?我是否应该寻找某种外部守护进程,将数据保存在内存中一两秒钟,以便从脚本调用?apache中有什么东西可以处理这个问题吗?我是否只需要向服务器人员下注就可以处理这个问题


假设这是我可以在PHP或一些所谓的外部守护进程中执行的操作,我如何响应超出阈值的行为?我的直觉是HTTP响应,类似408或503,但我的直觉通常是错误的。我该怎么做才能让客户退后一点?某种形式的“Woah there”页面?

如果您不需要软件解决方案,为什么不为您的路由器/防火墙编程以处理此问题?过滤掉DOS攻击(或其等价物)是它的一部分功能。

试试mod_evasive

试试看