如何利用缓冲区限额防御慢速拒绝服务(Slowloris)攻击

冷炫風刃

冷炫風刃

2026-06-02

675人浏览

原创

缓冲区限额本身不直接防御slowloris,真正起效的是连接级资源限制机制;需收紧请求头/体缓冲区大小、配合超时与连接数限制,并由反向代理统一管控。

如何利用缓冲区限额防御慢速拒绝服务(slowloris)攻击

缓冲区限额本身不是直接防御 Slowloris 的核心手段,真正起作用的是**连接级资源限制机制**,其中“请求头缓冲区大小”和“请求体缓冲区大小”是关键控制点。Slowloris 不靠填满缓冲区,而是靠长期占用连接槽位;但合理设置缓冲区限额能配合超时与连接数限制,切断其维持连接的路径。

限制请求头缓冲区大小,阻断 Slow Headers 攻击

Slowloris 最常用的是 Slow Headers 变种:攻击者持续发送不完整的 HTTP 头(如每 10–30 秒发一个 X-a: b\r\n),永远不发终止符 \r\n\r\n,让服务器一直等待完整头部。

此时,若服务器为每个连接分配过大的请求头缓冲区(如默认 8KB),虽不被填满,却会延长等待窗口。应主动收紧:

  • Apache:通过 LimitRequestFieldSize(默认 8190)设为 2048 或更小,并配合 LimitRequestFields 限制字段数量(如 50)
  • Nginx:用 client_header_buffer_size 设为 1klarge_client_header_buffers 设为 2 2k(即最多 2 个大缓冲区,各 2KB)
  • Spring Boot(Tomcat):通过 server.tomcat.max-http-header-size=2048 限制头部总长

一旦攻击者尝试发送超长或过多字段,服务器会立即返回 400 Bad Request 并关闭连接——这比等超时更高效。

Pebblely
Pebblely

AI产品图精美背景添加

下载

限制请求体缓冲区与读取行为,抑制 Slow Body/Slow Read

对于 Slow POST 或 Slow Read 类变种,攻击者发送完整头部后,缓慢上传大 body 或极慢读响应。此时缓冲区限额需配合读取策略:

  • 禁用无限制 body 缓存:Nginx 中关闭 client_body_buffer_size 自动扩容,设固定值(如 128k),并启用 client_max_body_size 防止超大上传
  • 强制流式处理:后端应用(如 Spring WebFlux、Node.js Stream)避免将整个 body 加载进内存;用流式解析 + 超时中断(如 readTimeout
  • Tomcat 设置 maxSwallowSize(默认 -1 即不限)为较小值(如 2048),防止攻击者故意中断上传后服务器仍试图吞掉剩余数据

缓冲区限额必须与超时联动才有效

单独调小缓冲区不能阻止 Slowloris,因为攻击者根本不会触发溢出——他只发几个字节。真正起效的是:在缓冲区未满、连接未闭合的前提下,用超时机制强制终结“停滞态”

  • 所有服务器都应启用 初始请求头读取超时(如 Nginx client_header_timeout 15s,Tomcat connection-timeout=10000
  • 该超时必须 早于缓冲区耗尽所需时间——例如,若攻击者每 20 秒发一次头字段,你的超时就绝不能设成 60 秒
  • 缓冲区限额的作用是:让超时更容易被触发(小缓冲区意味着更少数据就能进入“可判定停滞”状态),并降低单连接内存开销

反向代理层统一收口,隔离真实缓冲行为

把缓冲区限额和连接管理交给前置代理(如 Nginx、Traefik、Cloudflare),比依赖后端应用更可靠:

  • Nginx 默认不缓存请求体到磁盘,且能对每个连接独立设 client_header_timeoutclient_body_timeout
  • 启用 proxy_buffering off 可避免反向代理自身成为 Slow Read 的受害者
  • 结合 limit_conn 指令限制单 IP 连接数(如 limit_conn addr 10),从源头压缩攻击面

这样,真实应用服务器只需专注业务逻辑,无需暴露原始缓冲配置,整体防御更健壮。

相关文章

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

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

下载

相关标签:

apache安全配置

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

相关专题

更多
ddos攻击工具有哪些
ddos攻击工具有哪些

ddos攻击工具有LOIC、HOIC、Slowloris、ICMP洪水攻击、SYN洪水攻击和UDP洪水攻击。详细介绍:1、LOIC,可以使用单个用户或多个用户协同工作,形成分布式攻击,从而增加攻击的威力;2、HOIC,可以使用多个代理服务器,从而隐藏攻击者的真实IP地址;3、Slowloris,通过发送大量的半连接请求来占用目标服务器的资源,从而使其无法处理其他合法的连接请求等等。

2023.10.09

878

8

PyCharm安装配置教程合集
PyCharm安装配置教程合集

本专题汇总了PyCharm的完整安装部署与配置教程,涵盖从官网下载到Windows/Mac/Linux各平台安装包的选择与安装过程、环境变量配置及虚拟环境创建。同时整理了PIP镜像源更换、必要插件推荐、界面汉化等优化技巧,并附快捷键使用指南,助你快速搭建高效Python开发环境。

2026.08.05

0

19

Qt Creator编译运行使用教程
Qt Creator编译运行使用教程

围绕 Qt Creator 编译、运行、构建错误、断点调试、变量查看、调用栈、Debug与Release切换、编译输出和运行日志展开,帮助用户处理程序无法运行、断点不生效、找不到库文件、构建失败等问题。

2026.08.05

2

10

Qt Creator按钮响应设置方法
Qt Creator按钮响应设置方法

信号槽是 Qt 开发的核心机制。本专题整理 Qt Creator 中按钮点击、菜单触发、输入变化、窗口事件、自定义信号、自动连接槽函数和手动 connect 写法,帮助用户理解界面控件如何和 C++ 代码联动。

2026.08.05

0

10

Qt Creator新建项目使用教程
Qt Creator新建项目使用教程

本专题整理 Qt Creator 新建项目、打开已有工程、项目模板选择、目录结构、源文件管理、构建目录、运行配置和项目迁移方法,重点解决新手不知道选 qmake 还是 CMake、项目打不开、文件不参与编译等常见问题。

2026.08.05

0

10

maven常用插件使用大全
maven常用插件使用大全

PHP中文网精心整理Maven主流插件用法合集,涵盖编译、测试、打包等常用插件使用大全。从基础配置到进阶实战,详细解析各插件功能与适用场景,助你轻松掌握Maven自动化构建,解决Java项目开发痛点,是开发者必备的实用指南。

2026.08.05

0

31

PyCharm快速入门指南
PyCharm快速入门指南

本专题汇总了PyCharm快速入门的全套指南与教程,涵盖从官网下载安装、创建第一个Python项目、配置虚拟环境,到代码编辑、运行调试等基础操作,并整理了版本控制(Git)集成、常用高效快捷键及实用插件等进阶技巧,助你快速上手这款高效的Python IDE。

2026.08.05

2

17

PyCharm运行程序教程大全
PyCharm运行程序教程大全

本专题汇总了PyCharm运行程序的多种方式与详细操作步骤,涵盖通过主菜单Run、点击工具栏绿色三角图标、使用快捷键Shift+F10(或Ctrl+Shift+F10)等基本运行方法,以及配置运行/调试参数、设置PYTHONPATH环境变量、管理多脚本运行与交互式Python控制台调试等进阶技巧,助您全面掌握在PyCharm中高效运行与管理Python程序的方法。

2026.08.05

0

14

Maven零基础入门教程
Maven零基础入门教程

本合集由PHP中文网精心整理,提供Maven零基础入门到完整使用的保姆级教程。内容涵盖环境安装、核心配置、仓库管理及项目构建等核心知识点。通过详细步骤解析与代码示例,助你快速掌握Maven的依赖管理与自动化构建,轻松解决Java项目中的各种痛点,是新手入门与进阶的必备指南。

2026.08.05

2

18

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习