使用带路径的 proxy_pass 可能解码/归一化路径¶
Gixy Check ID: proxy_pass_normalized
当 proxy_pass 使用了带路径的上游 URL 时,nginx 在代理前会对请求路径进行归一化与解码。这可能改变原始路径的语义,导致安全问题。
不安全示例¶
# 归一化/解码可能改变语义
location /api/ {
proxy_pass http://backend/api/;
}
更安全的替代方案¶
- 避免在
proxy_pass中添加路径,使用无路径上游并在location中控制拼接; - 对用户可控的路径进行严格校验与约束;
- 在上游侧实施额外的路径验证与访问控制。
为什么重要¶
路径归一化与解码可能导致绕过检查、路径混淆等问题。保持路径处理的明确性与一致性,避免在代理层引入非预期的变换。
加固 NGINX,使用维护的 RPM
使用 GetPageSpeed 提供的 NGINX Extras 在 RHEL/CentOS/Alma/Rocky 上获取持续更新的 NGINX 与模块。 了解更多.