AI 简明手册
Agent 与 Harness 基础 · Prompt 安全Prompt 防御:三层拦截实战

Prompt 防御:三层拦截实战

目标

Prompt 注入无法靠单一机制防住,常见做法是叠加输入过滤、System Prompt 安全约束和输出泄漏检测三层防护。拒绝攻击时统一使用平台语境措辞,不暴露检测逻辑,能降低被持续探测的风险。

操作步骤

  1. 输入层识别明显攻击并缩小信任边界

    输入层可以拦截已知的恶意模式、限制长度和类型,并把用户内容、检索内容等不可信数据与系统指令明确隔离。规则过滤只能挡住一部分已知攻击,不能单独承担安全保证。

  2. 模型层隔离指令与不可信内容

    模型层应明确指令优先级、允许的工具和数据边界,并把外部内容标记为数据而非指令。是否使用 XML、JSON 或其他结构取决于运行时的解析和校验能力,格式本身不能防住注入。

  3. 输出层校验高风险动作与敏感信息

    输出和执行层要对敏感信息、工具参数与高风险动作做独立校验;拒绝信息不暴露具体检测规则。真正的权限边界应落在模型之外的鉴权、审批和沙箱中。

完成检查

  • 为什么拒绝注入时不应说明检测细节: 暴露命中的规则会帮助攻击者针对性绕过。回复应保持中性,只说明请求无法执行及可接受的替代操作。

  • 输入过滤就够了: 不够。输入过滤只能拦截明显的注入特征,攻击者仍可使用隐喻、角色扮演或结构符号绕过。需要结合模型侧的安全约束和输出侧检查,通过多层机制提高绕过成本。

  • System Prompt 里写“最高优先级”真的有效吗: 有帮助但不是绝对保证。明确优先级能让模型在多数情况下优先遵守安全规则,但面对复杂注入仍可能失效。它必须与其他防线配合,不能作为唯一安全手段。

来源与核验

  1. [owasp-llm-top-10] OWASP Top 10 for LLM Applications

核验日期:2026-08-31