2. 五个深题
深题 01
一个 RAG agent 读取外部文档后,被文档里的 prompt injection 诱导去导出用户邮箱。你如何防御并上线?
考察点:考 defense-in-depth。
7+ 分回答骨架:检索内容标记为 untrusted data,不作为 instruction。邮箱/数据库工具只接受应用定义的受限接口和服务端 auth context,工具层做 RBAC、row-level ACL、PII masking、rate limit、audit。敏感导出走审批。上线前用 prompt injection、越权、PII 泄露、工具滥用 case 做 safety eval,灰度发布并监控 blocked calls。
继续追问会衍生:衍生知识点:instruction/data separation、RBAC、PII masking、safety eval、canary。
知识展开
| 概念 | 是什么 | 工程落点 | 面试表达 / 常见坑 |
| instruction/data separation | 指令和数据隔离是把系统指令、用户指令、外部文档、工具返回明确分层,外部内容不能覆盖上层指令。 | prompt 和数据结构中标记 untrusted evidence,工具层不执行来自文档的指令。 | 面试表达:RAG 文档是证据,不是命令。 |
| RBAC | RBAC 用角色和权限控制用户能访问哪些资源、执行哪些动作。 | 工具执行前用 server-side auth context 检查 role、scope、tenant 和 resource ACL。 | 常见坑是让模型根据文本判断“这个用户应该能看”。 |
| PII masking | PII masking 是在返回或输出敏感个人信息前做脱敏、最小化和审批。 | 工具返回前按权限裁剪字段,输出前再次检查邮箱、手机号、身份证等。 | 强回答要说明脱敏不是替代权限,而是额外防线。 |
深题 02
为什么“在 system prompt 里说不要泄露”不是安全方案?
考察点:考安全边界。
7+ 分回答骨架:prompt 是软约束,会被不可信上下文、模型错误和工具漏洞绕过。真正边界在工具/API 层:服务端权限、参数白名单、最小返回、敏感字段脱敏、审批、审计和速率限制。prompt 只能帮助模型遵循流程,不能替代 access control。
继续追问会衍生:衍生知识点:hard boundary vs soft instruction、least privilege、server-side enforcement。
知识展开
| 概念 | 是什么 | 工程落点 | 面试表达 / 常见坑 |
| hard boundary | 硬边界是代码、权限、网络、沙箱和工具接口强制执行的限制。 | 例如服务端 ACL、tool allowlist、参数白名单、sandbox、rate limit。 | 面试里要明确 system prompt 是软约束,不是硬边界。 |
| least privilege | 最小权限让 agent 和工具只拥有完成当前任务所需的最小能力。 | 拆分 read/write/export tools,按风险授予字段、资源范围和调用频率。 | 常见坑是给 agent 一个通用数据库查询工具。 |
| server-side enforcement | 服务端强制执行意味着所有关键安全判断都在后端完成,而不是模型或前端决定。 | 权限、审批、金额、导出、跨租户访问都在 API/tool 层校验。 | 强回答要说模型最多给建议,执行权在服务端。 |
深题 03
AI 功能如何从 prototype 推到 production?
考察点:考发布流程。
7+ 分回答骨架:先定义业务指标和红线,建立 offline eval 和 safety eval;接 trace 和成本延迟观测;shadow mode 只观察不行动;canary 小流量带 feature flag;设置 SLO、alert、kill switch 和 rollback;版本化 prompt/model/tool schema/index/policy。
继续追问会衍生:衍生知识点:shadow mode、canary、feature flag、rollback、versioning。
知识展开
| 概念 | 是什么 | 工程落点 | 面试表达 / 常见坑 |
| shadow mode | shadow mode 是新 AI 功能只旁路观察,不真正影响用户或外部系统。 | 记录新 agent 会怎么答、会调什么工具、成本和安全拦截情况。 | 面试表达:先观察真实分布,再让它行动。 |
| feature flag | feature flag 是按用户、租户、比例或能力开关控制发布和回滚。 | 高风险工具、模型版本、prompt 版本、RAG 索引都可挂 flag。 | 常见坑是上线后只能整体回滚,无法快速关闭单个危险能力。 |
| rollback | rollback 是发现质量或安全退化时回到旧版本或降级路径。 | 需要版本化 prompt、model、tool schema、index、policy,并保留兼容状态。 | 强回答要说明没有版本化就无法可靠回滚和 replay。 |
深题 04
用户输入最终进入 HTML/SQL/shell/workflow,如何防输出注入?
考察点:考输出安全。
7+ 分回答骨架:模型输出视为不可信。进入 HTML 要转义或 sanitize;进入 SQL 使用参数化查询;进入 shell 禁止自由拼接,使用 allowlist 参数;进入 workflow 要 schema validate 和权限校验。不同目标系统用对应 encoder/validator。
继续追问会衍生:衍生知识点:output encoding、parameterized query、command injection、schema validation。
知识展开
| 概念 | 是什么 | 工程落点 | 面试表达 / 常见坑 |
| output encoding | 输出编码是按目标系统把模型文本安全转义,避免进入 HTML、SQL、shell 后变成指令。 | HTML sanitize,SQL 参数化,shell 参数 allowlist,workflow schema validate。 | 面试里要说模型输出默认不可信。 |
| parameterized query | 参数化查询把 SQL 结构和参数分离,防止模型输出拼接成 SQL 注入。 | 工具只暴露受限查询接口,不接受模型自由 SQL。 | 常见坑是让 agent 生成 SQL 直接执行。 |
| command injection | 命令注入是模型或用户文本进入 shell 命令后执行了额外指令。 | 禁止自由 shell,使用固定命令模板、参数白名单和沙箱。 | 强回答要覆盖输出进入下游系统的安全,而不只看输入 prompt。 |
深题 05
线上出现越权回答,如何止血和复盘?
考察点:考 incident response。
7+ 分回答骨架:先 feature flag/kill switch 降级相关能力,保留 trace 和 audit。定位是 retrieval ACL、tool auth、context packing、prompt injection 还是缓存污染。补 safety regression case,修复后跑门禁和 canary。对受影响用户、数据范围、时间窗口做审计。
继续追问会衍生:衍生知识点:kill switch、incident audit、blast radius、safety regression。
知识展开
| 概念 | 是什么 | 工程落点 | 面试表达 / 常见坑 |
| kill switch | kill switch 是快速关闭某个 agent、工具、模型版本或高风险能力的开关。 | 按 feature、tenant、tool、risk_level 配置,并接入告警和运维手册。 | 面试表达:安全事故先止血,再定位和修复。 |
| incident audit | 事故审计确定谁受影响、哪些数据被访问、什么版本导致、是否有外泄。 | 保留 trace、tool audit log、auth context、policy decision、输出样本。 | 常见坑是没有审计字段,事故后无法界定影响范围。 |
| blast radius | 爆炸半径是一次故障可能影响的用户、数据、租户和动作范围。 | 用分租户灰度、最小权限、rate limit、feature flag 降低范围。 | 强回答要把发布策略和安全设计连接起来。 |