如何防止用户 Prompt 攻击?

考查重点:输入可信度与执行权限。用户文本不能改变服务端身份与权限;提示分层、数据隔离配执行校验,限制外传和副作用,用攻击样例回归

本题目录

参考答案

核心回答

防用户Prompt攻击需要把模型指令层级、服务端权限和敏感数据边界一起设计。系统提示中说明用户内容不具备更高权限,输入与检索内容按不可信数据处理;真正的数据访问、工具执行和资金等操作由服务端独立授权。过滤器与模型拒绝可以降低风险,但不能把一句“忽略恶意指令”当成完整防护。

防止System Prompt泄露时,首先不要把密钥、口令或必须保密的业务凭证放进提示词。提示本身也应尽量减少内部细节;即便出现内容泄露,系统仍应靠权限与隔离控制实际损害。

先明确攻击会跨越哪条边界

直接注入是用户把自己的请求伪装成更高优先级指令,试图覆盖角色、泄露内部内容或绕过流程。间接注入则藏在网页、附件、知识库和工具返回中,模型读材料时可能把其中的指令当成授权。

攻击文本是否包含“忽略前文”只是表面特征;还要覆盖角色伪造、编码变换、多轮诱导、跨语言及通过工具反馈逐步改变目标等情况。正常用户讨论安全问题或引用攻击样本,也不应自动被当成攻击执行。

分层落地措施

提示与上下文组织:区分系统策略、用户任务和引用材料,保留来源与角色边界,明确外部内容只作为证据。分隔符和结构化字段有帮助,但不能单靠标记保证模型不会误解;长会话中仍要维护同一权限与目标。

工具与数据授权:模型只能提出工具调用,后端校验工具白名单、参数Schema、资源范围、用户身份及租户权限。数据库查询、网络访问与文件操作使用最小权限;敏感动作需要业务要求的确认或审批。不要让模型通过提示自行给自己提权。

输入、输出与运行监控:检测异常输入及外部内容,必要时限制上下文、隔离处理或拒绝;输出检查敏感信息、越权参数与明显违规结果。限制调用次数、token、执行时间和可访问目标,留下可审计记录,便于终止与回溯。

怎样测试防护

建立正常任务与攻击样本两组回归:系统提示提取、越权数据访问、恶意工具参数、知识库夹带指令和多轮诱导。重点检查是否真的访问或执行了不该发生的动作,而不是只看模型回复是否“拒绝”。同时观察正常任务成功率和误拦截,防止用完全禁用能力换取表面安全。

例如用户要求客服助手读取另一个租户的工单,即使模型输出了查询参数,服务端也应按用户身份限定租户并拒绝越权。系统提示、输出检测与独立授权形成多道约束,最后一道不能交给同一个被注入的模型自行判断。

对应教程

参考资料

相关面经

2 篇

美团

后端开发工程师(AI / Agent 方向)
秋招一面
查看原面经 →
如何防止用户prompt攻击

小红书

Agent 开发工程师
实习秋招二面
查看原面经 →
如果用户通过 Prompt Injection 诱导 Agent 泄露 System Prompt 或绕过既有指令怎么防范?

收录题集

6 个来源,共7 份题集
展开剩余 2 份题集

相关题目

4 题