| 版本 | 安全修复 |
|---|---|
| 1.0.x | 支持 |
| 早期开发提交 | 不承诺单独修复 |
安全修复以新补丁版本发布,不覆盖已发布的同名二进制或移动既有标签。
公开仓库建立后,请优先使用 GitHub 仓库 Security 页面中的 Report a vulnerability 私密报告功能。首次发布前,维护者必须在仓库设置中启用 Private Vulnerability Reporting,并补充一个经过确认的私密备用联系渠道。
请不要在公开 Issue、Discussion、PR 或社交媒体中披露尚未修复的漏洞。
报告应尽量包含:
- 受影响版本、提交和 Windows 版本。
- 可重复的最小步骤或概念验证。
- 实际影响和攻击前提。
- 涉及的进程边界、IPC 通道、文件路径或持久化字段。
- 已尝试的缓解方式。
维护者确认报告前,请保留原始二进制、SHA-256 和日志;日志需移除用户名、用户目录和其他个人信息。
项目的主要信任边界是 Electron 主进程与渲染进程:
- 主进程拥有窗口、协议和本地存储权限。
- preload 只暴露设置/高分的四个具体方法。
- 渲染进程运行在沙箱中,没有 Node 集成。
- 生产资源只从受控的
app://bundle根目录加载。 - 新窗口、远程导航和权限请求默认拒绝。
- IPC 校验发送方 URL,并以类型守卫验证所有载荷。
- 持久化数据始终视为不可信,损坏数据回退默认值。
架构细节见架构设计。
以下事项不是安全漏洞,但应在发布说明中透明披露:
- 测试发行 EXE 未使用 Authenticode 签名,可能触发 SmartScreen。
- 游戏不提供联网服务、账户、云同步或自动更新。
- 本地高分不用于安全或竞赛裁决,拥有本机文件权限的用户可以修改它。
- Windows 10 是目标平台,但当前只完成 Windows 11 实机验证。
以下行为应作为安全回归处理:
- 开启
nodeIntegration、关闭上下文隔离或放宽沙箱。 - 添加通用 IPC、任意路径文件访问、shell 执行或远程导航。
- 未校验 IPC 载荷、存储数据或协议路径。
- 将密钥、签名证书、令牌或个人信息提交到仓库/发行包。
发布前运行:
pnpm install --frozen-lockfile
pnpm check
pnpm audit --prod
pnpm package:portable维护者应审查锁文件变化、Electron 安全公告和依赖许可证。自动依赖更新不能替代测试与人工审查。发行物必须附 SHA-256,流程见发布手册。