Skip to content

Security: 12138cgp/frameweave

SECURITY.md

安全说明

报告漏洞

请不要在公开的 Issue 里报告安全漏洞。

请使用 GitHub 仓库页面「Security」标签下的 Report a vulnerability(私密安全通告)提交, 描述中请包含:

  • 影响的版本(见根目录 VERSION)
  • 复现步骤或概念验证
  • 你评估的影响范围(例如:越权访问、绕过计费、信息泄露)

请勿在报告里附带真实用户数据、API Key、数据库连接串等敏感信息。 我们会尽快确认并处理;修复发布之前,请不要公开漏洞细节。

支持的版本

只维护最新发布的版本。安全修复会合入主分支,并在更新日志中注明。

部署安全清单

本项目会保存用户账号、上游模型的 API Key 与生成的媒体文件。部署到公网之前,请逐项确认:

项 要求 说明
管理员口令 ADMIN_PASSWORD 使用强口令 只在库里还没有管理员时用于创建账号;建号之后再改配置文件不会改口令,请登录后台修改
登录密钥 JWT_SECRET 固定为随机长串 deploy.sh init 会自动生成;留空会在每次重启时随机生成,导致所有人掉线
端口暴露 前端端口只绑本机回环(默认 127.0.0.1:3000),前面挂 Nginx + HTTPS 绑到 0.0.0.0 会绕过 HTTPS 和反向代理直接暴露在公网
可信代理 正确配置 TRUSTED_PROXIES(默认已包含私有网段) 配错时后端拿不到用户真实 IP,按 IP 计的登录失败锁定会变成全站共用,任何人都能锁住别人的账号
数据库 使用独立账号、只允许应用服务器访问、开启定期备份 用户、点数与流水、渠道配置都在库里
对象存储 桶按「公共读、私有写」配置,访问密钥只授予该桶的权限 上游模型需要通过公网地址读取参考素材,因此素材地址是可公开访问的
渠道密钥 为本系统单独申请上游 API Key,并设置用量上限 后台管理员可以看到渠道密钥,请控制管理员账号的数量
定价 新增模型后先在「分级定价」里配置单价再开放给用户 没配价的模型按 0 点计费,等于对所有人免费,而上游照常计费

已知安全问题(当前版本,计划修复)

下列问题在本版本已知存在、尚未修复,对应接口的源码是公开的。修复会在后续版本合入主分支并在更新日志中注明;技术细节与修复方向见开发者指南 10.6。这些接口都要求先登录——把 allowRegister 关闭、且不开放短信 / 第三方登录时,只有管理员建过账号的人可触达;即便如此,也请在决定是否面向不完全可信的用户开放前先了解。

问题 说明 部署方可采取的缓解
视频提交计费可被构造的请求绕过 提交视频生成的接口,计费按后端从请求体解析出的时长 / 分辨率计算。精心构造的请求可能让计费值低于上游实际执行值,导致少计费——差价由运营方在上游账户承担。正常网页操作不会触发。 监控上游用量与本地扣点流水的差额;给上游 API Key 设用量上限;控制能登录的账号数量
服务端按用户地址拉取素材,内网过滤不完整(SSRF) 「视频编辑按源视频时长计费」与「媒体转存」两条路径,都会由服务端去访问用户提供的地址,而对内网 / 云元数据地址的过滤不完整。已登录用户可能借此让服务端访问内部地址,个别路径还可能读回所拉取的内容。 限制后端容器出网,只放行必要的上游 / 存储域名;屏蔽后端对云厂商实例元数据服务的访问;实例改用 IMDSv2,或不给实例绑定高权限 IAM 角色

更多运维细节见 部署指南。

There aren't any published security advisories