Prompt Injection:12 个攻击案例
越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版
本页解决的问题
先给结论「Prompt Injection:12 个攻击案例」要解决的关键问题是什么?
越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版
先检查模型究竟看到了什么。 把指令、参考材料、历史、工具和输出规则拆开。上下文变得可见后,通常更容易选对修复方式。
在修改 Prompt 或模型之前,先画出一个小流程的输入和输出。
不断增加文字,但真正的问题其实是相关性、顺序或缺少边界。
「Prompt Injection:12 个攻击案例」怎样变成可执行的指令
「越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版」强调的不是某句神奇咒语,而是信息是否足够让模型判断“为谁做、要完成什么、什么结果算合格”。
背景决定方向,限制决定边界
从「越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版」可以看出,一个有效请求至少要把任务、受众、输入材料、输出形式和限制条件分开。少了背景,模型只能猜;少了验收标准,即使文字流畅也无法判断是否完成任务。
继续加字不一定继续变好
把「越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版」变成一个小练习:只改背景、要求、限制中的一项,保留其他内容不动,观察哪一层真正改变了结果。
从这个例子继续往下看
页面先提出「越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版」。接下来不要只记住这句话,可以把它变成一个小练习:写下输入、预期结果,以及什么现象会让你重新检查这个判断。
把这条判断带到下一个场景
写请求时也应逐层补齐:先说任务和受众,再给材料和输出要求,最后加上限制与验收方式;一次只改变一层,才能知道哪项信息起了作用。
- 「Prompt Injection:12 个攻击案例」:越权指令 / 角色扮演 / Few-Shot / 结构注入 / 隐喻伪装,中招版 vs 防御版
最后做一次小而可逆的练习:把页面里的判断放进一个真实输入,写下预期结果和会让你停下来复核的信号。
互动练习
把模糊需求拼成一条可执行的提示词
把目标、背景和限制说清楚,再把整理好的提示词带到你正在使用的 AI 工具里。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。