v1.2.0
Security & Cryptography (安全与加密)
- Web Crypto 原生 OAEP 与 CSPRNG 增强:手机登录页在现代浏览器/安全上下文中优先使用原生
window.crypto.subtle.encrypt({ name: 'RSA-OAEP' })进行 2048 位 RSA 加密;回退纯 JS 垫片中使用crypto.getRandomValues()进行密码学安全随机填充。 - URL Token 验证行为安全收敛:移除从 URL
?token=xxx自动发起verify的逻辑,改为仅回填输入框,杜绝社工链接消耗受害者失败配额的间接 DoS 风险。 - 智能静态扩展名放行机制:收敛
/plugins/门禁放行规则为合法前端静态扩展名白名单(.js,.css,.png,.svg,.woff2,.map等 20+ 种),彻底堵死未授权调用第三方插件后台动态 API 的漏洞,对用户零负担、免手动维护。
Robustness & Performance (健壮性与性能)
- 写盘分级与 Debounce 防抖:拆分写盘策略,高频访问记录(
recordAuthVisit、活跃时间戳更新)引入 500ms 防抖合并;关键路径(配对成功、密码认证、撤销、改密)保持同步即时写盘;配套beforeExit广播与flushPersistedData保证进程退出不丢数据。 - 配置一致性与反向覆盖防御:
loadPersistedData完全移除对历史devices.json中data.config的读取,确保~/.dsh/settings.yaml为唯一配置权威来源,杜绝重启时的配置回滚。 - YAML 原子性持久化:
writeBackToSettingsYaml引入临时文件原子替换(renameSync),防止异常中断导致settings.yaml文件半写损坏。 - RSA 密钥按需懒加载:移除模块顶层同步生成密钥逻辑,改为在首次调用时懒加载单例,消除启动阻塞。
- SSE 幂等注销与双向 Close 监听:优化服务端 SSE 事件通道,同时监听
req.on('close')与res.on('close'),引入cleanup()幂等保护,杜绝监听器与定时器泄漏。
Testing & Code Hygiene (测试与代码清理)
- 测试覆盖率提升:新增 5 项边缘场景测试用例(含设备撤销审计归因回退、URL Token 提取、data.config 忽略防覆盖、高频写盘防抖、SSE 幂等断连清理),全套测试扩展至 66 项并全部通过。
- 冗余代码清理:移除已废弃未引用的
src/types/auth.ts。
Full Changelog: https://github.com/IceApriler/dsh-remote-mobile/commits/v1.2.0