跳转到内容

安全与风控

codingas.com 遵循零信任安全架构,请求经过 IP 封禁、认证、限流多层检查,API Key 与上游凭证均加密存储。

请求按以下顺序检查(任一层拒绝即返回):

顺序拦截器职责失败响应
1IP 黑名单封禁 IP 拦截(/api/**/v1/**/anthropic/**403 {"code":"ACCESS_DENIED","message":"Access denied: IP blocked"}
2API Key 认证/v1/*/anthropic/* 路径校验调用方 Key401 {"code":"UNAUTHORIZED","message":...}
3会话认证/api/v1/* 路径校验 Sa-Token 登录态401 未登录
4角色授权管理端点按 ADMIN / USER 白名单放行(USER:模型 / 应用只读、体验中心、自己的 Key)403 ACCESS_DENIED
5限流API Key 级令牌桶429 {"error":{"code":"RATE_LIMIT_EXCEEDED",...}}

已实现。被封锁的 IP 访问受保护路径时返回 403。客户端 IP 提取顺序:X-Forwarded-For -> X-Real-IP -> RemoteAddr

⚠️ IP 黑名单的领域服务(封禁/解封)已实现,但管理 API 端点暂未暴露,当前需通过管理后台操作。

所有上游 Provider Key 使用 AES-256-GCM 加密存储,密钥获取顺序:gateway.security.encryption-key 配置属性 → 环境变量 ENCRYPTION_KEY → 开发环境临时密钥:

Terminal window
# 生成 32 字节 Base64 密钥
openssl rand -base64 32
export ENCRYPTION_KEY="<生成的密钥>"
  • 生产环境(非 dev/local profile)必须配置,否则启动抛 ENCRYPTION_KEY_MISSING
  • 环境变量名为 ENCRYPTION_KEYGATEWAY_ENCRYPTION_KEY 仅在 local profile 的 yml 映射中生效(详见 安装部署
  • 调用方 API Key 不存明文:仅存前缀(keyPrefix)+ SHA-256 哈希,认证时按前缀查库再哈希比对

列表与详情接口不返回明文,仅返回脱敏后的 key_hint / keyPrefix(如 sk-****abcd)。

启动时预置 8 条敏感数据规则(手机号、身份证、银行卡、邮箱、地址、密码、信用卡、SSN),支持正则匹配与掩码格式。

⚠️ 规则已定义入库,但脱敏执行尚未接入请求链路,当前版本暂不生效。

以下能力为规划功能,当前版本尚未落地:

  • IP 白名单(仅 DB 字段预留)
  • UA 过滤
  • 内容审核(/v1/moderations
  • 国密算法(SM2/SM3/SM4,当前使用 AES-256-GCM)
  • 完整审计链(WORM)
功能状态
认证中间件(Token 验证)
角色授权(ADMIN / USER)
IP 黑名单
IP 白名单规划中
UA 过滤规划中
PII 脱敏(规则已定义,执行待接入)规划中
数据掩码策略
审计日志
密钥加密存储(AES-256-GCM)
国密算法(SM2/SM3/SM4)规划中
完整审计链(WORM)规划中