安全政策 / 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。

请在报告中尽量包含:

  1. 漏洞类型与受影响版本 / 提交。
  2. 复现步骤(最小可复现为佳)。
  3. 影响评估(机密性 / 完整性 / 可用性)。
  4. 可选:修复建议。

我们会:

  • 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 二进制(既有约定)。
  • 构建产物签名(占位):真实签名需在 CI secrets 就绪后启用——
    • Windows:Authenticode(代码签名证书)。
    • macOS:Apple 公证(Notarization,需开发者账号)。
    • Linux:GPG detached 签名。
    • 当前流水线(.github / .gitee workflows 的 supply-chain 任务)已落地「构建 + SBOM + sha256sum 校验和 + 制品上传」框架,签名步骤以注释形式保留,待证书/账号就位后取消注释启用。
  • SBOMmake sbom 生成 CycloneDX 1.5 JSON(覆盖本模块与全部依赖模块及其版本/替换),用于漏洞扫描与合规归档。

5. 用户数据处理 / User Data Handling

  • 凭据隔离:所有预设配置(含 token / 密码 / SK 等明文凭据)存于 profiles/,已被 .gitignore 排除,严禁提交入库
  • 清除凭据:工具页 「安全」分组提供「清除当前预设凭据 / 清除全部预设凭据」,仅清空敏感字段、保留配置结构;破坏性操作经二次确认弹窗。
  • 诊断导出脱敏:「导出诊断信息」打包日志、构建信息与配置,但 token / secret / password / SK 等字段经 redactConfig 掩码展示,不改动原文件
  • 崩溃日志:未捕获 panic 落盘到 logs/crash-*.log(含堆栈与构建信息),不含任何用户凭据——崩溃日志仅记录配置键结构与运行上下文,不写入 token 等值。

发现任何安全问题,请优先走第 2 节的私下披露渠道。谢谢你的负责任披露。