路线阶段:AI Vibe Coding 第 10 章。
本章目标:让 AI 协同开发既快又可控,避免数据泄露与合规风险。
学习目标
完成本章后,你应该能做到:
- 识别 AI 协作链路中的安全与合规风险点。
- 建立最小权限策略和敏感数据边界。
- 让每次 AI 操作可追溯、可审计、可复盘。
- 将合规检查前置到任务执行与发布流程。
风险面识别
主要风险面:
- 提示词中误带敏感信息(密钥、用户数据)。
- AI 产物引入不合规依赖或许可冲突。
- 自动化执行权限过大,误改核心资产。
- 缺少操作留痕,问题发生后无法追责。
最小权限模型
角色权限分层
Reader:只读检索与分析。Editor:限定目录可写。Executor:可运行构建与测试命令。Release:触发发布/回滚。
AI 默认以 Reader/Editor 运行,高风险动作需人工授权。
敏感数据分级
L1: 公共信息(文档、公开配置)
L2: 内部信息(业务逻辑、非敏感日志)
L3: 敏感信息(用户标识、交易数据)
L4: 高敏信息(密钥、凭证、生产访问令牌)
规则:L3/L4 不进入普通提示词上下文。
上下文脱敏管道
public sealed class ContextRedactor
{
public string Redact(string input)
{
if (string.IsNullOrEmpty(input)) return input;
var output = input;
output = RegexReplace(output, "(?i)api[_-]?key\\s*[:=]\\s*[A-Za-z0-9-_]+", "api_key=<REDACTED>");
output = RegexReplace(output, "(?i)secret\\s*[:=]\\s*[A-Za-z0-9-_]+", "secret=<REDACTED>");
output = RegexReplace(output, "(?i)token\\s*[:=]\\s*[A-Za-z0-9-_]+", "token=<REDACTED>");
return output;
}
private static string RegexReplace(string s, string pattern, string replace)
{
return System.Text.RegularExpressions.Regex.Replace(s, pattern, replace);
}
}
审计日志模型
[Serializable]
public sealed class AiAuditLog
{
public string TaskId;
public string Actor; // human/planner/worker/reviewer
public string Action; // read/write/execute/release
public string Scope;
public long TsMs;
public string InputDigest;
public string OutputDigest;
public bool Approved;
public string Approver;
}
所有高风险动作必须记录:谁、何时、改了什么、谁批准。
合规检查清单
每次任务执行前:
- 是否包含敏感数据。
- 是否涉及受限目录。
- 是否使用受限依赖。
- 是否需要额外审批。
每次发布前:
- 许可证扫描通过。
- 安全基线扫描通过。
- 审计日志完整。
依赖与许可证合规
AI 生成代码可能引入新包,必须检查:
- 许可证兼容性(MIT/Apache/GPL等)。
- 安全漏洞(CVE)。
- 维护状态(长期无人维护风险)。
安全门禁流程
- AI 产出后自动跑敏感词扫描。
- 命中高风险规则直接阻断。
- 安全审查通过后才能进人工评审。
与现有流程联动
- 上下文工程:先脱敏再注入。
- 代码评审:新增安全审查维度。
- 发布运维:高风险改动要求双人审批。
- 数据飞轮:统计安全告警与误报率。
常见坑
坑 1:把敏感数据写进提示词示例
即使只在内部也会扩大暴露面,必须脱敏。
坑 2:审计日志只记录成功操作
失败和拒绝操作同样重要,才能还原攻击链路。
坑 3:把合规检查放到发布末端
越晚发现成本越高,应前置到任务起点。
本月作业
落地“AI协作安全一期”:
- 接入上下文脱敏器。
- 建立高风险操作审批与审计日志。
- 将安全检查接入 CI 阻断流程。
下一章:AI Vibe Coding 11《成本与吞吐优化:模型选型、路由与预算控制》。