Skip to content

Security: SevChu/Pinball

Security

SECURITY.md

安全策略

支持版本

版本 安全修复
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,流程见发布手册。

There aren't any published security advisories