3

现在有一个主题可以采取多种方式。希望我能够在描述我的问题并开始获得建议时对其进行去混淆处理。

我正在开发一个将替换现有站点的站点。从历史上看,我们遇到的问题之一是蜘蛛机器人进入并吸收所有内容。现在我们不介意正在下载内容。事实上,我们对此感到高兴,但是一些批量下载器和下载加速器已被证明与当前站点存在问题。

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

一些阈值是:

  • 用户在过去 0.n 秒内请求了 > x 个页面。
  • 用户在 < 0.n 秒内请求了相同的页面。
  • 用户在最后 n 秒内向表单提交了相同的数据。

所以你看我在看一些很紧的窗户。检测这样的事情是否可行?我可以使用某种文件或数据库数据源来做到这一点吗?无论我使用什么来存储页面加载之间的指纹,都会经历很多流失,因为大多数数据将保留一两秒钟。我应该只是有一些东西可以解析 apache 日志来检查阈值吗?我是否应该寻找某种可以从脚本调用的将数据保存在内存中一两秒的外部守护进程?apache 中有什么东西可以处理这个问题,我是否只需要向服务器人员求助来处理这个问题?

假设这是我可以在 PHP 或一些称为外部守护程序中执行的操作,我该如何响应超出阈值的行为?我的直觉说 HTTP 响应,比如 408 或 503,但我的直觉经常是错误的。我能做些什么来告诉客户退后一点?某种“哇”页面?

4

3 回答 3

3

如果您不需要软件解决方案,为什么不对您的路由器/防火墙进行编程来为您处理呢?过滤掉 DOS 攻击(或它们的等价物)是它的一部分。

于 2009-10-30T21:03:10.887 回答
2

尝试 mod_evasive

于 2009-10-30T21:08:50.453 回答
2

尝试PEAR::HTTP_Floodcontrolmod_securityfail2ban

于 2009-10-30T21:16:37.570 回答