上传与请求限制管的是什么
上传大小与请求限制是控制单个 HTTP 请求体尺寸、头部大小、表单字段数量与文件类型的组合参数。限制过松,攻击者可以用超大请求体或海量字段消耗后端资源;限制过紧,正常业务的上传(报表、图片、附件)会被拒。WAF 与前置 nginx 都会做限制,两侧数值不一致时,拦截会出现在预料之外的那一层。
基本信息
| 限制对象 | 请求体大小、请求头大小、表单字段数量、上传文件类型 |
|---|---|
| 常见参数 | nginx 的 client_max_body_size、client_body_timeout;WAF 侧为最大请求体与字段数 |
| 一致原则 | 两侧限制值保持一致,避免拦截层级不可预测 |
| 例外 | 大文件业务单独走指定路径放宽,而不是全局放大 |
典型使用场景
- 站点上线前:按业务实际的最大上传需求设定限制值
- 异常流量处置:请求体异常巨大时先用限制快速止血
- 大文件业务迁移:报表、视频、备份上传需要单独放宽并留痕
- 安全基线评审:把请求体与字段限制列入检查项
- 上传故障排查:先确认是 nginx 还是 WAF 这一层拦下的
nginx 参考配置
nginx 参考配置
# 限制请求体大小,超限时由 nginx 直接返回 413
client_max_body_size 20m;
# 请求体接收超时,防止慢速上传长期占用连接
client_body_timeout 60s;
# 大文件业务只在指定路径放宽,不影响其他站点
location /report/upload/ {
client_max_body_size 200m;
}
# 改完在 WAF 侧同步核对限制值,避免两层不一致限制项与影响
| 限制项 | 设得过松 | 设得过紧 |
|---|---|---|
| 请求体大小 | 大包攻击与内存压力 | 正常上传返回 413 |
| 请求头大小 | 头部膨胀消耗资源 | 带长 Token 的客户端被拒 |
| 字段数量 | 表单类攻击可行 | 复杂表单业务提交失败 |
| 文件类型 | 可执行文件上传风险 | 合法附件类型被误拦 |
上传被拒时先看状态码:413 通常来自请求体大小限制(nginx 或 WAF 侧),403 多为规则命中,两者的排查路径完全不同。
限制值是业务需求与安全需求的平衡点,改动前先确认业务侧真实的最大上传量,而不是照抄其他站点的数值。