# 安全策略 [English](./SECURITY.md) 欢迎报告安全问题并参与审查。这是维护者第一次做开源项目,因此本策略会同时说明已经实现的控制和仍需用户自行判断的边界。 ## 支持版本 | 版本 | 是否支持 | |---|---| | 0.2.x | 是 | | 0.1.x | 否 | ## 私下报告 疑似漏洞请不要提交公开 Issue。请通过 [GitHub Security Advisories](https://github.com/superboy911/dsh-model-router/security/advisories/new) 私下报告,并提供受影响版本、复现步骤、影响范围和最小脱敏样例。 如果私下报告入口暂时不可用,请提交一个不包含利用细节和敏感信息的公开 Issue,请维护者提供私下沟通渠道。 ## 禁止提交 - API Key、Bearer Token 或凭据库导出; - DSH 设置或凭据文件; - 带签名的图片结果地址; - 私有提供方端点或内部模型名称; - 生成产物或本机绝对路径; - 单位、客户、生产或个人数据。 如果凭据已经泄露,请立即吊销或轮换。只从最新提交删除并不够,因为 Git 历史和外部缓存仍可能保留它。 ## 已实现控制 - 媒体 API 端点必须使用 HTTPS;只有本机开发使用的明确回环地址可以使用 HTTP; - 端点 URL 拒绝内嵌用户名、密码、查询参数和锚点; - 凭据引用留空时不发送 Authorization 请求头; - 修改会话前校验路由目标; - 没有非空明确白名单时不注册 `model_route`; - 生图下载校验协议、允许域名、DNS 结果、重定向、大小和文件魔数; - 设置写操作要求同源 JSON 请求; - 捕获到的服务端异常只保留在本机日志中,HTTP 客户端只收到稳定错误码和固定双语提示; - 持续集成会扫描当前仓库和 Git 历史中的高可信敏感信息。 - 公开仓库会运行 CodeQL;私有仓库分析需要另行启用 GitHub Advanced Security,本项目不会自动开启。 ## 能力边界 上述控制不能证明提供方一定可信,不能保护已经失陷的 DSH 主机,不能替代第三方插件审查,也无法识别世界上所有密钥格式,更不能代替费用和账号权限检查。 内置扫描器只是高可信兜底,不等于正式安全审计;仍应保持 GitHub 密钥扫描并进行人工审查。