Skip to content

安全与上线检查

发现可能影响凭据、私有下载、支付或用户数据的安全问题时,请通过下载页或支持页面提供的私密渠道报告,不要在公开 Issue、群聊或截图中披露可利用细节。

自动安全预检

docker-compose.production.yml 会为核心服务启用只读根文件系统、移除 Linux capabilities、禁止提权并提供受限 tmpfs。生产环境 schema 与 pnpm ops:template:preflight 还会拒绝:

  • 示例密码、低熵 Secret 和开发数据库地址。
  • 公网 HTTP URL、非安全 Cookie 和错误的代理信任范围。
  • Mock 支付、Mock OAuth 与本地视频模式。
  • 开启私有文件交付却未完整配置所选存储方式、短时地址或独立签名 Secret。
  • 证书、支付回调和视频回调的关键不一致。

预检失败时先修复配置,不要删除校验或改用开发 Compose 绕过。

已实现的高风险保护

  • 外部 URL 获取会拒绝 loopback、私网、链路本地、保留地址、IPv4-mapped IPv6 和 CGNAT 等目标,降低 SSRF 风险。
  • 支付返回 HTML 不会通过 innerHTMLdocument.write 执行;支付宝表单只允许受信 HTTPS 主机和隐藏字段。
  • 媒体 URL 必须匹配配置的对象存储 origin 与精确 object key。
  • 私有文件由独立下载权限控制,公开列表不会返回永久下载地址或对象存储 key。
  • 服务器目录交付会校验路径边界、符号链接目标和数据库记录的文件大小,并只通过主站短时地址读取。
  • /v1/app 只返回站点身份、模块状态和 Provider 名称,不返回 Secret。
  • 生产环境会拒绝启用 Mock 支付、本地视频和其他仅供本机体验的路径。

这些保护不能替代真实环境验收。支付金额、回调签名、对象存储 ACL、OAuth 回调、邮件投递和视频转码仍需使用你自己的服务账号逐项验证。

你的生产责任

  • 为数据库、Cookie、Session、CSRF、机器令牌和业务加密分别使用独立高熵密钥,并定期轮换。
  • 数据库、Redis 与服务端 API 只绑定内网或 loopback,只通过 Nginx 暴露必要的 HTTPS 入口。
  • 按最小权限配置管理员、对象存储、支付、视频、邮件、AI 和自动化任务。
  • 定期备份 PostgreSQL 与用户上传文件,并实际完成恢复演练。
  • 及时升级到受支持版本,保存升级记录和可用回滚版本。
  • 不把 .env、数据库备份、签名密钥、访问令牌、Cookie 或生产日志上传到公开仓库、公共模型和工单。

上线前最小检查

  1. pnpm ops:template:preflight、类型检查、测试和生产构建全部通过。
  2. 主站与 Auth 域名使用有效 HTTPS,Cookie、CORS 和代理信任范围正确。
  3. 数据库、Redis、Mock API 和管理端口没有暴露到公网。
  4. 普通用户无法访问管理员接口,关闭模块的页面与 API 均返回 404。
  5. 支付、退款、邮件、上传、视频和 AI 分别验证成功与失败路径。
  6. 备份、监控、告警、密钥轮换和回滚负责人已经明确。