本应用为纯前端单文件 HTML,无后端、无账号、无网络请求。安全边界如下:
| 面 | 现状 |
|---|---|
| 网络 | 全部资源内联,运行期零外部请求(无 CDN / 字体 / 遥测);file:// 与静态托管均不产生数据外发 |
| 数据 | 全部数据存于用户浏览器 localStorage,仅本机可读;导出文件由用户自行保管 |
| XSS | 唯一不可信输入是用户导入的题库 JSON。所有动态 HTML 插值经 escapeHtml() 转义(应用代码 §1),题干 / 选项优先以 textContent 写入;导入内容逐条校验(§8 validateQuestionInput) |
| 依赖 | 唯一第三方代码是内联的 Chart.js v4.4.4(MIT,UMD 原样嵌入,来源与版本见文件内注释);无运行时动态加载 |
| eval | 全库无 eval / new Function,无未转义用户数据直插 innerHTML |
- 只从可信来源获取本应用的 HTML 文件——单文件形态意味着文件本身就是全部代码,被篡改的文件等同于恶意程序。可信来源:本仓库及其 Release。
- 导入陌生人提供的题库 JSON 是安全的(内容经转义与校验),但请自行判断题目内容质量。
请不要在公开 Issue 中披露漏洞细节。通过仓库 Owner 的私信渠道联系,附:
- 影响版本(CHANGELOG 版本号)
- 复现步骤 / PoC
- 影响评估
确认后会在修复版本的 CHANGELOG 中致谢(除非你要求匿名)。
仅最新发布版本接受安全修复。