安全说明
安全保存 API Key,控制数据暴露,并为生产调用建立审计与防护。
API Key 等同于调用权限和可计费额度。安全设计应覆盖 Key 生命周期、网络传输、日志、权限隔离和数据最小化。
Key 安全
- 不要把 Key 写入前端 JavaScript、移动端包或公开仓库。
- 使用环境变量、CI Secret 或云端密钥管理服务。
- 为开发、测试、生产和不同服务使用独立 Key。
- 定期轮换;发现泄露后立即停用。
- 日志只保留 Key 的短前缀或内部标识,不记录完整值。
// 不要这样做:构建后所有用户都能读取该值。
const apiKey = 'sk-sublyx-example';const apiKey = process.env.SUBLYX_API_KEY;
if (!apiKey) {
throw new Error('SUBLYX_API_KEY 未配置');
}数据最小化
只发送完成任务所需的数据。在提交用户内容前,评估并处理:
- 身份证件、支付信息和健康信息。
- 内部源码、访问凭证与基础设施细节。
- 客户合同、未公开财务和商业机密。
- 受地区、行业或合同约束的数据。
服务端代理
浏览器应用应调用你自己的服务端接口,由服务端完成:
- 用户认证与授权。
- 输入验证和内容大小限制。
- API Key 注入。
- 配额、速率限制与审计。
- 对响应进行必要的过滤和脱敏。
Webhook、工具与 Agent
当模型可以调用工具或执行操作时:
- 对工具参数做结构化校验。
- 对写操作使用最小权限和人工确认。
- 将模型输出视为不可信输入。
- 防止提示注入绕过访问控制。
- 对高风险动作保留不可抵赖的审计记录。
泄露响应流程
立即停用 Key,创建新 Key,检查调用记录和账单,更新所有依赖服务,并排查泄露来源。只删除 Git 中的最新文件并不能清除历史记录。