防范资源耗尽攻击需构建多层保护机制:在反向代理、os、waf设限监控熔断;防御慢速攻击要配置超时与禁用非常规http方法;管控文件上传、搜索导出、动态执行等高危操作;通过指标采集、阈值告警、自动扩容/封禁实现闭环响应。

防范资源耗尽攻击,关键不是堵住某一个漏洞,而是构建多层资源保护机制——从网络入口到应用逻辑,每一层都要设限、监控、熔断。
限制连接与请求频率
攻击者常通过海量并发连接或高频请求拖垮服务器。需在多个环节设防:
- 在反向代理(如 Nginx)中配置连接数与速率限制:
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
server {
location /api/ {
limit_conn addr 10;
limit_req burst=20 nodelay;
}
} - 操作系统层面限制单用户进程数和打开文件数(ulimit -n 65535),防止 fork 炸弹或句柄耗尽;
- 云环境可启用 WAF 的 CC 防护规则,按 IP 或 Session 维度设置 QPS 阈值(如单 IP 每秒超 50 请求即触发挑战或封禁)。
防御慢速攻击与畸形请求
Slowloris、RUDY 类攻击不靠流量洪峰,而靠“长连接+慢发包”占满服务端连接池:
- Nginx 中启用超时控制:
client_header_timeout 15;
client_body_timeout 15;
keepalive_timeout 30 30;
reset_timedout_connection on; - WAF 默认具备慢速请求聚合清洗能力,HTTP 请求异常会返回 400,TCP 层则发送 RST;
- 禁用不必要的 HTTP 方法(如 TRACE、OPTIONS),并在日志中监控非常规方法高频出现。
管控资源密集型操作
某些功能天然易被滥用为资源放大器,必须主动约束:
- 文件上传:限制单次大小(Nginx 中用 client_max_body_size 50M),禁用执行权限,存储路径脱离 Web 可访问目录;
- 搜索与导出接口:强制分页、限制最大返回条目(如 limit 1000),对未登录或低权限用户降级响应粒度;
- 动态脚本执行(如 PHP eval、Python exec):生产环境彻底禁用,或仅允许白名单函数调用。
监控与自动响应闭环
防护不能只靠静态配置,要让系统“看得见、判得准、动得快”:
- 采集核心指标:每秒新建连接数、活跃连接数、5xx 错误率、平均响应时间、CPU/内存使用率突增;
- 设置告警阈值(如活跃连接 > 3000 持续 2 分钟,或 5xx 错误率 > 15%);
- 联动响应:触发时自动扩容实例、临时启用 WAF 紧急模式、将恶意 IP 加入防火墙黑名单(iptables -A INPUT -s x.x.x.x -j DROP)。











