【问题标题】:Apache mod_reqtimeout not dropping long requestsApache mod_reqtimeout 不丢弃长请求
【发布时间】:2011-04-15 13:51:59
【问题描述】:

为了保护自己免受 slowloris 类型的攻击,我们在 Apache 2.2.17 安装(在 Solaris 上运行,MPM 编译)上配置了 mod_reqtimeout 模块。 mod_reqtimeout 配置如下:

RequestReadTimeout 标头=10-20,MinRate=500 正文=10-20,MinRate=500

我们正在使用 OWASP http_dos_cli 工具进行测试,并且仍然能够在几秒钟内使该站点无法访问。在日志中,我们看到请求在 20 秒后被截断,然后被处理。由于 URL 引用的是实际资源,因此返回 200 状态代码。这可以防止我们的 mod_security 规则集检测 408 状态代码、收集基于 IP 的统计信息并阻止来自该 IP 的进一步请求。

知道为什么 mod_reqtimeout 会截断请求而不是丢弃它并返回 408 吗?

非常感谢!

【问题讨论】:

  • 实际上,由于 httpd-vhosts.conf 文件中的 RedirectMatch 指令,Apache 正在发送 302 重定向。不过,该请求应该超时并返回 408,而不是 302。

标签: security apache


【解决方案1】:

我已打开错误报告并收到确认 HTTPD Core 中的问题导致以下问题:

  • 检测到请求超时时,Apache 并不总是返回 408(各种情况)
  • 当 URL 对应于 RedirectMatch 指令时,Apache 无法正确处理请求超时

更多详情:https://issues.apache.org/bugzilla/show_bug.cgi?id=51103

希望最终能帮助到某人。

【讨论】:

    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2012-11-13
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多