fix(security): 修复信任代理和HTTPS检测的安全漏洞
## 问题修复 1. **trust proxy 配置安全加固** - 默认改为 false(不信任任何代理) - 支持多种安全配置:数字跳数、loopback、IP/CIDR段 - 当配置为 true 时输出安全警告 2. **HTTPS 检测基于可信代理链** - 使用 req.secure 替代直接读取 x-forwarded-proto - Express 会根据 trust proxy 配置判断是否采信代理头 - 防止客户端伪造协议头绕过 HTTPS 强制 3. **客户端 IP 获取安全加固** - 使用 req.ip 替代直接读取 X-Forwarded-For - Express 会根据 trust proxy 配置正确处理代理链 - 防止客户端伪造 IP 绕过限流 4. **健康检测增加安全警告** - trust proxy = true 时标记为严重安全问题 - 提示管理员配置更安全的代理信任策略 5. **安装脚本优化** - 默认配置 TRUST_PROXY=1(单层Nginx场景) - 添加详细的配置说明和安全警告 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
10
install.sh
10
install.sh
@@ -2180,6 +2180,16 @@ ALLOWED_ORIGINS=${ALLOWED_ORIGINS_VALUE}
|
||||
# HTTPS 环境必须设置为 true
|
||||
COOKIE_SECURE=${COOKIE_SECURE_VALUE}
|
||||
|
||||
# 信任代理配置(重要安全配置)
|
||||
# 在 Nginx/CDN 后部署时必须配置,否则无法正确识别客户端 IP 和协议
|
||||
# 配置选项:
|
||||
# - false: 不信任代理(直接暴露,默认值)
|
||||
# - 1: 信任前 1 跳代理(单层 Nginx,推荐)
|
||||
# - 2: 信任前 2 跳代理(CDN + Nginx)
|
||||
# - loopback: 仅信任本地回环地址
|
||||
# 警告:不要设置为 true,这会信任所有代理,存在 IP/协议伪造风险!
|
||||
TRUST_PROXY=1
|
||||
|
||||
# 公开端口(nginx监听的端口,用于生成分享链接)
|
||||
# 如果使用标准端口(80/443)或未配置,分享链接将不包含端口号
|
||||
PUBLIC_PORT=${HTTP_PORT}
|
||||
|
||||
Reference in New Issue
Block a user