fix(server): 修复 IP 封锁绕过漏洞并补充审计日志

- 支持 TRUST_PROXY 配置,由 express 正确解析客户端 IP,防止伪造 X-Forwarded-For
- 修复 IP 封锁使用对象作为 Map key 导致失效的问题,改用字符串 IP
- 主密码解锁失败时记录 IP 失败次数,达到阈值后封锁
- 补充条目更新操作的审计日志
这个提交包含在:
2026-08-26 11:09:47 +08:00
父节点 02e83f5b73
当前提交 45f6f08195
共修改 4 个文件,包含 59 行新增和 5 行删除
+3
查看文件
@@ -54,6 +54,9 @@ const config = {
// 4) 会话与安全
sessionSecret: pick('SESSION_SECRET', ''),
sessionMaxAge: parseInt(pick('SESSION_MAX_AGE', String(30 * 60 * 1000)), 10),
// 反向代理层数/地址(如 "1" 或 "127.0.0.1")。设置后由 express 正确解析客户端 IP,
// 防止攻击者伪造 X-Forwarded-For 绕过 IP 封锁。直连部署留空。
trustProxy: pick('TRUST_PROXY', ''),
// 审计日志:本地文件持久化目录(可按大小自动切分),默认 ./logs
logDir: pick('LOG_DIR', path.join(__dirname, 'logs')),