慢速攻击(如Slowloris)的核心特征在于极低的请求速率而非高频访问,其目的是通过长期占用服务器连接资源而非快速耗尽带宽。具体频率因攻击类型而异,但通常远低于正常用户行为,以下是详细分析:
1. 慢速攻击的频率特征
- 整体逻辑:攻击者会建立大量连接,但每个连接以极低速发送/接收数据(如几分钟甚至几十分钟完成一个请求),而非追求单位时间内的请求次数。
- 典型速率示例:
- 数据发送速率:每1~10秒发送1字节(即每分钟仅发送6~60字节)。
- 请求完成时间:单个HTTP请求可能持续数分钟至数十分钟,远超过正常请求的毫秒级耗时。
2. 分类型攻击频率说明
攻击类型 | 频率特征 | 技术实现 |
---|---|---|
Slow Headers | 持续发送不完整的HTTP头部,间隔数秒发送一个头部字段,每分钟仅发送几KB数据。 | 通过不发送结束符\r\n\r\n ,使服务器等待头部完成,占用连接池。 |
Slow Body | 声明发送大体积数据(如Content-Length: 1000000 ),但每分钟仅发送几十字节。 | 服务器因等待未传输完的Body而长时间维持连接。 |
Slow Read | 客户端接收数据时每秒仅读取几字节,如每分钟读取100~300字节。 | 通过设置极小的TCP窗口大小,迫使服务器缓慢传输资源。 |
3. 防护关键:识别低频异常连接
- 超时设置:配置中间件参数(如Nginx的
client_header_timeout
≤ 20秒,client_body_timeout
≤ 30秒),中断超时未完成的连接。 - 速率监控:检测同一IP的低数据传输速率连接(如10秒内传输<10字节)并自动封禁。
- 连接数限制:限制单IP并发连接数(如≤50),防止连接池被占满。

总结
慢速攻击的“频率”无法用“每分钟多少次”量化,因其本质是低速率长期占用连接而非高频请求。防御需聚焦于:
- 缩短超时时间(秒级中断慢连接);
- 监控单连接数据速率(识别字节/分钟的异常低速);
- 限制并发连接数(防资源耗尽)。