安全政策 / Security Policy
August 16, 2026 · View on GitHub
本文件说明 FrpGUI 的安全支持范围、漏洞披露渠道,以及项目自身在供应链与用户数据方面的安全实践。
1. 受支持版本 / Supported Versions
| 版本 | 是否受安全支持 |
|---|---|
最新 dev 主线的最新发布标签(如 v1.x) | ✅ 主动修复 |
| 更早的发布标签 | ⚠️ 仅在重大漏洞时回溯,建议升级到最新版 |
未发布的 dev 中间提交 | 以最新发布标签为准,不单独维护 |
2. 漏洞披露渠道 / Reporting a Vulnerability
请勿在公开 issue 或 PR 中描述漏洞细节。 请通过以下任一私下渠道报告:
- GitHub Security Advisories:在本仓库发起一个 private security advisory(推荐,便于协同修复与 CVE 申请)。
- 邮箱:security@(项目维护者邮箱,见 README 作者信息)。若无可用的安全邮箱,请改用 GitHub Security Advisories。
请在报告中尽量包含:
- 漏洞类型与受影响版本 / 提交。
- 复现步骤(最小可复现为佳)。
- 影响评估(机密性 / 完整性 / 可用性)。
- 可选:修复建议。
我们会:
- 在 72 小时内确认收到;
- 与报告者协商修复与负责任披露时间表(默认在修复发布后公开,或经双方同意的日期);
- 对有效且重要的报告在发布说明中致谢(除非报告者要求匿名)。
3. 范围与边界 / Scope
属于本项目:
- FrpGUI 自身的配置读写、进程管理、UI、更新/诊断、凭据处理、构建与签名流程中的安全缺陷。
- 随仓库分发的脚本(
tools/)与文档中的安全指引错误。
不属于本项目(请向上游报告):
- frp / frpc 本身的漏洞:请向 fatedier/frp 官方报告。FrpGUI 仅作为 frpc 的图形前端,不修改其二进制。
- 操作系统、Go 运行时、Shirei(GUI 框架)等第三方依赖的漏洞:通过各自的渠道;本项目会在 CI 中跑
govulncheck并跟进升级。
4. 供应链与签名 / Supply Chain & Signing
- 完整性校验:
- 启动时(启动 frpc 前)若同目录存在
frpc.sha256基准文件,会与frpc二进制实际哈希比对;不匹配仅告警、不阻断(允许用户自行更新 frpc)。工具页「安全」分组提供「校验 frpc 完整性」按钮查看 SHA256 与结论。 - 基准文件由部署侧随 frpc 提供;本仓库不内置 frpc 二进制(既有约定)。
- 启动时(启动 frpc 前)若同目录存在
- 构建产物签名(占位):真实签名需在 CI secrets 就绪后启用——
- Windows:Authenticode(代码签名证书)。
- macOS:Apple 公证(Notarization,需开发者账号)。
- Linux:GPG detached 签名。
- 当前流水线(
.github/.giteeworkflows 的supply-chain任务)已落地「构建 + SBOM + sha256sum 校验和 + 制品上传」框架,签名步骤以注释形式保留,待证书/账号就位后取消注释启用。
- SBOM:
make sbom生成 CycloneDX 1.5 JSON(覆盖本模块与全部依赖模块及其版本/替换),用于漏洞扫描与合规归档。
5. 用户数据处理 / User Data Handling
- 凭据隔离:所有预设配置(含
token/ 密码 / SK 等明文凭据)存于profiles/,已被.gitignore排除,严禁提交入库。 - 清除凭据:工具页 「安全」分组提供「清除当前预设凭据 / 清除全部预设凭据」,仅清空敏感字段、保留配置结构;破坏性操作经二次确认弹窗。
- 诊断导出脱敏:「导出诊断信息」打包日志、构建信息与配置,但
token/secret/password/SK等字段经redactConfig掩码展示,不改动原文件。 - 崩溃日志:未捕获 panic 落盘到
logs/crash-*.log(含堆栈与构建信息),不含任何用户凭据——崩溃日志仅记录配置键结构与运行上下文,不写入 token 等值。
发现任何安全问题,请优先走第 2 节的私下披露渠道。谢谢你的负责任披露。