HTTP 方法支持检查
这项检查核对 Web 服务器实际允许的方法集合,以及网关、反向代理与应用三层配置是否一致。三类风险值得关注:写方法直通(放行上传与删除语义的方法,可能直接作用于资源或目录)、回显类方法(把请求内容原样回显,配合其他技术可形成跨站追踪)、以及方法重载(用请求头覆盖真实方法,绕过只在网关层生效的规则)。核查只需读取方法集与响应形态,不需要用写方法对生产资源做实际验证。
基本信息
| 核查内容 | 服务端返回的允许方法集与实际放行情况 |
|---|---|
| 三层差异 | 网关、反向代理与应用各自可能放行不同方法 |
| 主要风险 | 写方法直通、回显泄漏、方法重载绕过 |
| 修复方向 | 按需放行方法,在网关层统一收敛 |
典型使用场景
- 静态站点:服务器默认放行方法远超实际需要
- 接口服务:仅用查询与提交两种方法,却放行了完整方法集
- 上传目录:写方法放行后可在目录内创建文件
- 反向代理差异:网关收敛了方法,后端仍接受原始方法
- 跨站追踪核查:回显类方法开启时的风险确认
检查方式
检查方式
curl -s -X OPTIONS -i https://target.example/ | grep -i '^allow'
# 分别对关键路径核查:首页、接口前缀、上传与静态资源目录
curl -s -o /dev/null -w '%{http_code}\n' -X TRACE https://target.example/
# 记录状态码与响应体特征,确认回显类方法是否开启
# 不执行写入与删除类方法,只记录方法集与响应形态方法与风险
| 方法 | 风险 | 建议 |
|---|---|---|
| 写方法类 | 可在目标创建或删除资源 | 仅对必要路径开放并加认证 |
| 回显类 | 原样回显请求内容 | 关闭,除非业务确有需要 |
| 重载头 | 覆盖真实方法绕过网关规则 | 网关层拒绝该请求头 |
| 查询类 | 一般风险低,但可放大信息泄露 | 按需开放并加访问控制 |
结论要写清是在哪一层观察到的方法集:网关响应与后端响应不一致本身就是一个需要整改的配置问题。