如何在Apache中利用mod_reqtimeout防范慢速HTTP头部读取攻击

雨枫姑娘_6714

雨枫姑娘_6714

2026-05-02

1003人浏览

原创

mod_reqtimeout专防慢速http头部攻击,如客户端分多次、间隔数秒发送请求头但始终不发双\r\n结束符;它通过header=参数限制头接收时限与速率,不防慢读、慢传体或空闲连接。

如何在apache中利用mod_reqtimeout防范慢速http头部读取攻击

mod_reqtimeout 能防哪种慢速头部攻击

它只对 Slow headers 类攻击有效:比如客户端发完 GET / HTTP/1.1\r\n 后,每隔 5–10 秒才补一个 User-Agent: a 字符,中间用 \r\n 分隔但始终不发双 \r\n 结束头。这类行为会让 Apache 一直卡在“等请求头收全”状态,mod_reqtimeout 就是专门掐这个环节的。

它不防 Slow read(慢读响应)或 Slow body(慢传请求体)——前者靠 Timeout 或反向代理层控制,后者得单独配 body= 参数;也不防连接复用后的空闲等待,那是 KeepAliveTimeout 的事。

RequestReadTimeout header= 参数怎么设才真正起效

header=20-40,minrate=500 不是随便写的数字组合,每个值都对应明确行为:

  • 20 是初始超时:从 TCP 连接建立开始,必须在 20 秒内收到首个完整请求行(如 GET / HTTP/1.1)和至少一个头字段;超时即断连
  • 40 是总窗口上限:从连接建立起,最多容忍 40 秒未收完全部请求头;哪怕中间有停顿,只要总时长超 40 秒,直接丢弃
  • minrate=500 是速率兜底:任意连续 2 秒内,至少要收到 1000 字节(500 字节/秒 × 2 秒);设成 minrate=1 几乎无效,因为每秒 1 字节太宽松

常见错误是把配置写进 <directory></directory> 块里——RequestReadTimeout 是服务器级指令,只允许出现在主配置、<virtualhost></virtualhost> 或全局 server context 中,否则静默失效。

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载

为什么配了还是被慢速头部打穿

多数“没效果”不是模块没加载,而是调试路径走偏了:

  • 用 curl -v http://x/ 测试?不行。curl 默认一次性发完所有头,根本触发不了慢速逻辑。得用 nc 手动发,或工具如 slowhttptest -c 1 -t GET -u http://x/ -i 10 -r 1(每秒发 1 字节)
  • 日志里看不到拒绝记录?检查 ErrorLog 级别是否 ≥ info,且确认看的是 error_log 文件,不是 access_log;拒绝时典型日志是 client denied by server configuration 或 request read timeout
  • HTTPS 站点响应更慢?初始超时建议提到 header=20-40,因为 TLS 握手本身就有延迟,10 秒可能不够

和 Timeout、KeepAliveTimeout 是什么关系

三者完全不重叠,也别指望用一个代替另一个:

  • Timeout 是全局兜底值,只在没启 mod_reqtimeout 时才生效;一旦启用,它的优先级最低,仅覆盖那些没被 RequestReadTimeout 显式约束的边缘场景
  • KeepAliveTimeout 控制的是“请求已处理完、连接还开着等复用”的空闲时间,和“请求头还没收完”是两码事;攻击者常故意让连接卡在头阶段,根本不会走到 KeepAlive 阶段
  • 真正要防住 Slow headers,RequestReadTimeout header=... 是唯一精准手段;Timeout 设太大反而帮倒忙——给慢速连接更多存活时间

最易被忽略的一点:mod_reqtimeout 不会自动加载,即使 Apache 2.4.10+ 自带,也得确认 httpd.conf 里有这行:LoadModule reqtimeout_module modules/mod_reqtimeout.so;缺了这句,后面所有配置都是废纸。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

920

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2972

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2696

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5052

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习