dsh-passwords v2.0.2
v2.0.2 安全修复(网安测试第二轮)
1. CSRF 防护
- 登录/配置表单新增 double-submit token:GET 渲染时同时下发 HttpOnly Cookie 与表单隐藏域,POST 时恒定时间比对
- 无 token / token 不匹配 → 403 并重新下发新 token;多标签页互不干扰
2. 真实状态码
- 凭据错误 → 401、账号锁定 → 429、已初始化 → 409(不再统一 200 吞错)
3. 代理层防嵌框
- dsh 应用代理响应补
X-Frame-Options: SAMEORIGIN+Content-Security-Policy: frame-ancestors 'self'(允许同源内嵌,禁止跨站嵌框)
复验(公网实测)
- 无 CSRF 登录 → 403 ✓
- 错密码 → 401 ✓;正确登录 → 302 ✓
- 连续失败第 5 次起 → 429 ✓
- dsh 页面响应含嵌框头 ✓
- 时序均衡:不存在用户 0.896s vs 存在用户错密码 0.898s ✓
许可证
BSD 3-Clause
安装
Node.js >= 22.5。克隆仓库 → cp .env.example .env(改 SETUP_KEY)→ npm install && npm run build && npm start。完整教程见 README。