上线前把安全项过一遍
AI 功能的安全问题很少是"想不到" ✗,多是"没人系统地查" ✔。
把检查做成清单 ✔,上线前逐项过一遍,能挡掉绝大多数低级风险 ✔。
一、20 项上线前安全检查
输入侧
□ 输入长度/类型/编码有上限与校验(见长尾输入那篇)
□ 文件上传有类型白名单与大小限制
□ 结构化输入按字段白名单取值
□ 无零宽/控制字符进入链路
□ 提示注入防护:外部内容被明确标注为"资料"
权限与动作
□ 越权用例清单全部被拒(见权限模型那篇)
□ 写操作有幂等键与确认步骤
□ 高风险动作需人工确认
□ 权限判断在服务端,不依赖界面隐藏
□ 服务账号遵循最小权限
数据与合规
□ 外发数据已做最小必要与脱敏(见数据脱敏那篇)
□ 日志不含敏感原文(存 hash 或截断)
□ 数据保留期与删除流程可验证(见数据保留那篇)
□ 检索权限在检索层过滤(见可筛选检索那篇)
输出与滥用
□ 输出有规则校验(绝对化/承诺性表述被拦,见文案审校那篇)
□ 敏感话题有明确边界与免责
□ 有速率限制与配额
□ 有"该拒答却作答"的监控
□ 错误信息不泄露内部细节
二、怎么让清单被执行
- 进上线检查单 ✔(与发布流程绑定 ✔ —— 见发布门禁 ✔);
- 能自动化的自动化 ✔(越权用例、脱敏检查、词表扫描 ✔);
- 人工项留痕 ✔(谁查的、结论是什么 ✔);
- 每季度更新 ✔(新踩的坑进清单 ✔ —— 见边界用例库 ✔)。
三、三个反模式
- 只在设计阶段提一次 ✗(实现时遗漏 ✔);
- 清单太长没人看 ✗(20 项以内、分四组 ✔);
- 检查没有责任人 ✗("大家看一下" ✔)。
一条判据
随机抽一个已上线的 AI 功能 ✔,你能否拿出它当时的安全检查记录 ✔?
拿不出,说明安全检查还没进流程 ✗。