Skip to content

安全与防护

平台提供多项安全设置。需要注意:社区版把这些能力暴露为扩展 Hook,具体的强力实现(如完整的敏感词过滤、SSRF 校验、限流策略)可能由专业版注入。社区版在未注册 Hook 时以中立/基础行为运行。详见 扩展点 Hooks

认证与登录

通过系统设置控制开放哪些登录方式:

设置键默认说明
oidc_enabledfalseOIDC 单点登录
passkey_enabledfalsePasskey(WebAuthn)
password_login_enabledtrue密码登录
password_registration_enabledtrue是否开放注册
password_hcaptcha_enabledfalse注册/登录 hCaptcha 人机验证
email_verification_requiredfalse是否强制邮箱验证

相关密钥项:oidc_issuer / oidc_client_id / oidc_client_secret / oidc_redirect_urlhcaptcha_site_key / hcaptcha_secret

对外平台建议

开放注册的公开平台建议:开启邮箱验证 + hCaptcha,配合 API 密钥的 IP/额度限制和限流,降低滥用与薅羊毛风险。

速率限制(Rate Limit)

设置键默认说明
rate_limit_enabledtrue限流开关
rate_limit_requests_per_minute60每分钟请求数
rate_limit_burst10突发额度

限流中间件作用于网关入口(/v1/v1beta)。触发时返回 429。具体限流算法由注册的限流工厂决定(社区版可不启用强限流,专业版可注入更完整策略)。

真实客户端 IP

限流和 API 密钥的 IP 限制都依赖请求的客户端 IP。部署在反向代理后时,务必正确透传真实 IP,否则可能把所有用户当成同一个 IP。

敏感词过滤

设置键默认说明
sensitive_filter_enabledfalse开关
sensitive_filter_scoperequest过滤范围:request(仅请求)或 request_response(请求+响应)
sensitive_words敏感词列表(管理员可见的敏感配置)

开启后,命中敏感词的内容会被拦截。request_response 范围会同时检查上游返回的内容,开销更大。词库与匹配实现可由专业版增强。

SSRF 防护

防止通过配置的上游/回调地址访问内网或敏感目标:

设置键默认说明
ssrf_protection_enabledtrue开关
ssrf_allow_private_networksfalse是否允许访问私有网段
ssrf_allowed_hosts额外放行的主机白名单

平台在校验配置的 URL(如渠道 BaseURL、状态监控目标、出站请求)时应用该防护:

  • ValidateConfiguredHTTPURL / ValidateConfiguredTCPAddress / ValidateConfiguredStatusTarget 校验管理员配置的地址;
  • ValidateOutboundHTTPURL 校验出站请求目标。

默认禁止访问私有网段。若确有内网上游需求,可在受控前提下开启 ssrf_allow_private_networks 或把特定主机加入 ssrf_allowed_hosts

WARNING

放开私有网段会扩大 SSRF 风险面。仅在你完全掌控网络环境、且确实需要时开启。

API 密钥侧的防护

每个 API 密钥可独立设置允许模型、允许用户渠道、允许 IP、额度上限,见 管理 API 密钥。这是限制单个凭据爆炸半径的关键手段。

凭据与数据安全

  • JWT_SECRET:生产环境必须为强随机值,否则服务拒绝启动;
  • 上游渠道密钥 / 支付密钥 / SMTP 密码 / OIDC 密钥:都存于数据库,注意 SQLite 文件与备份的访问控制;
  • 这些敏感项只在管理员的 GET /api/settings 返回,不出现在 GET /api/public/settings
  • 数据模型中密码哈希、API 密钥哈希等字段都以哈希形式存储,不保存明文。

请求体大小

网关对单次请求体设有上限(默认 32 MiB),超限请求被拒,防止超大负载耗尽资源。

基于 MIT 协议发布(社区版)