Prismata:限制网页 Agent 中的跨站提示注入
Prismata: Confining Cross-Site Prompt Injection in Web Agents
Prismata用关键路径标注与机械隔离约束网页智能体,三种弹窗攻击平均ASR从85.5%降到0.7%。
攻击者可向良性站点的user、hosted-party或external内容注入文本,可推断任务并多轮攻击信任推导;不假设标注模型对抗鲁棒。
- 网页智能体在良性页面上混读开发者、用户和外部内容,自然语言注入可经站内功能劫持任务。判断动作是否越权又要读与不可信内容缠结的结构,模型级拒答和预先规划工具调用都难直接处理这种缠结。
- Prismata位于智能体与浏览器之间。动作门只看任务和元素的DOM关键路径;Biba解析用祖先和结构线索锁定来源,标签不能高于父节点。策略模型只看任务,确定性代码再删除或降级越权元素。
- 在WebArena三种弹窗攻击上,作者报告平均ASR从85.5%到0.7%,攻击下平均TSR从4.5%到23.0%,良性TSR从29.9%到26.6%。作者称自适应WA20的端到端攻击成功被消除,WASP Goal 0的plain-goal成功被挡住。
- 作者称只挡超出任务权限的文本XSP,完整性优先于标注准确率,并受模型与页面结构影响。高需求任务建议交隔离智能体。实验有WebArena三模板、WASP和自适应WA20,标注20条;Table 2任务数与防御组件模型未报告。
- 威胁模型
- 攻击者可向良性站点的user、hosted-party或external内容注入文本,可推断任务并多轮攻击信任推导;不假设标注模型对抗鲁棒。JavaScript限于沙箱iframe。Prismata位于BrowserGym智能体与浏览器之间,只防御超出任务权限的文本XSP。
- 被测模型
- gpt-5.4-minigpt-5.4gpt-5.4-nanoGemini 3 FlashGPT-OSS-120BQwen3-8BMiniMax-M2.5
- 基准
- WebArenaWASPWA20Mind2WebCommon CrawlTranco top 10K
- 指标
- TSRASRDSRreward-weighted task success rateallowed-element precisionallowed-element recallallowed-element F1
研究者提出 Prismata,一种为网页 Agent 提供上下文最小权限的防御方法,用于限制跨站提示注入。该方法通过动态信任推导为页面内容生成权限标签,并借鉴经典完整性模型给出结构约束保证,使标签只能降低权限、标注错误有界。机械隔离则通过删减内容和限制 Agent 能力来执行这些标签,且无需开发者标注,可覆盖长尾网站。在已发表的网页 Agent 攻击及自适应变体上,Prismata 大幅降低攻击成功率,同时保持正常任务效用。
深度解读
这篇论文试图解决什么问题?
网页智能体把不可信自然语言当指令,Prismata按任务同时限制所见与所能。
网页智能体把页面上的自然语言当指令,而判断动作是否越权又必须阅读与不可信内容缠结的结构。
- 场景:作者称智能体在良性购物等站点上同时看到开发者界面、用户评论和外部广告。第三方内容中的注入可让智能体借站内功能外泄数据或改权限。作者称之为Cross-Site Prompting(XSP),并称XSS防护不能直接迁移,因为载荷是自然语言和图像。
- 现有不足:作者称自适应攻击仍以高比例绕过模型级防御。作者称CaMeL要预先规划全部动作,难以用于数据依赖的网页任务;只读域名停在来源级;页面级策略此前要开发者按站手工建地图。
- 观察:作者称可交互元素的关键路径大多是开发者结构节点,不可信内容很少落在路径上;标题、无障碍属性和类名常出现在不可信子树之前。
- 方法:Prismata按任务做上下文最小权限,同时限制所见与所能。动态信任推导打来源和权限标签,并称标注错误只会降权;机械隔离负责涂黑和限制能力。作者称不需要开发者标注。
- 威胁模型:
- 目标:挡住超出任务所需权限的动作。读评论时的虚假评论属于权限之内,作者称不在此防御目标内。
- 知识:可能推断任务并定向注入;可多轮攻击信任推导。不假设标注模型具有对抗鲁棒性。论文未使用白盒或黑盒描述这一威胁模型。
- 能力:可向user、hosted-party或external内容注入文本。JavaScript限于沙箱iframe;可信源上任意执行视为经典XSS,超出范围。
- 受害系统:BrowserGym中的网页智能体,观察为无障碍树,动作空间有限。Prismata位于智能体与浏览器之间。假设站点已采取防XSS措施。只处理文本输入。
有哪些相关研究?
作者称模型级防御仍会被自适应攻击绕过,系统级方法难直接处理网页缠结。
作者按模型级与系统级两条路线讨论提示注入防御,并对照页面级标注和XSS隔离。
模型级防御
- 抵抗型方法:作者把StruQ(Chen et al., 2024)、Instruction Hierarchy(Wallace et al., 2024)、DataSentinel(Liu et al., 2025)等归为依赖模型抵抗注入的一类,并称自适应攻击仍以高比例绕过。论文未在此处给出那些绕过实验的数字。
- 网页智能体检测:作者称现有网页智能体防御主要属模型级。对In-Context Defense(Yang et al., 2025)和WebGuard(Zheng et al., 2025),作者称更难泛化,也更容易受类XSP攻击影响。论文未给与Prismata的数值对比。
系统级隔离
- CaMeL(Debenedetti et al., 2025):在带语义的结构化工具API上预先规划,以获得完全中介。作者称网页上的click(id)本身没有安全语义,任务又依赖页面数据,不能直接搬用;并称其难以推广到数据依赖的网页任务。
- 信息流与即时策略:信息流控制(Costa et al., 2025等)利用工具参数的元数据。作者称网页动作缺少这类元数据,只读域名一类的来源级控制粒度很可能不够。Tsai与Bagdasarian(2025)探索开放任务上的即时策略;作者未批评该工作,也未给数值对比。
- 双LLM(Willison, 2023):隔离模型向特权规划器传递有界变量,后有若干实现。作者认为网页动作参数指向不可信DOM,严格两级划分不够,因此加入中间暴露层。
页面策略与XSS
- ceLLMate(Meng et al., 2025):作者称针对XSP的细粒度页面级策略,此前需要开发者按站手工构建完整站点地图。
- XSS防护:输入净化、内容安全策略、iframe沙箱和SafeFrame用于限制可执行代码或广告能力。作者称这些不能直接用于智能体,因为模型不区分数据与指令,外部内容也无法从智能体上下文中隔开。
基线与基准
- 基线方法:同一BrowserGym智能体,开启与关闭Prismata对比,论文未与其他防御系统做数值对照。攻击模板改编自Pop-up(Zhang et al., 2024),含Shortcut、Fake Completion(Willison, 2023)和Ignore Instruction(Perez与Ribeiro, 2022)。另用WASP(Evtimov et al., 2025)做压力测试。
- 环境与语料:任务环境为WebArena(Zhou et al., 2024)。页面统计使用Common Crawl、Tranco与Mind2Web(Deng et al., 2023)。
作者把本文定位为不依赖开发者标注的系统级上下文最小权限防御:用关键路径和Biba式约束处理网页缠结,而不是靠模型拒答或事先固定全部工具调用。结论中作者称Prismata是一种novel contextual least-privilege defense。
论文如何解决这个问题?
Prismata沿DOM关键路径做动作门控和Biba解析,再以确定性代码执行最小权限。
Prismata插在网页智能体与浏览器之间:先从受限的页面结构导出最小权限标签,再用确定性代码执行,而不是让模型自己拒绝注入。
问题设定
- 缠结:同一click(id)可能是购买、回复评论或点广告,安全含义在站点而不在动作名。作者称之为web entanglement problem。
- 观察与动作:系统基于BrowserGym。元素动作用标识符指向页面元素;导航和控制动作不指向页面内容。智能体每步只发一个动作。页面建模为有根DOM树,可交互元素有从根到该元素的关键路径。
- 有效权限:动作门与Biba解析各自赋值,有效能力取更严者:cap(e,task)=min(capgate(e,task),capbiba(e,task))。含义是任一机制的无注入标签都能封顶。
动作门
- 输入范围:经DevTools枚举按钮、链接和表单。每条关键路径单独交给LLM,输入只有用户任务和路径上的结构上下文,页面其余内容不可见。
- 无注入情形:路径上没有不可信内容时,该判定按构造是injection-free。落在路径外的注入不能改变这条路径,因而不能影响该元素的门控。
Biba解析
- 来源与方向:内容标为developer、user、hosted-party或external。标注只看元素自身及从根开始的祖先,子节点和兄弟被遮住(no-read-down)。标签一旦确定即锁定,不能高于父节点(no-write-up)。
- 线索级联:标题、无障碍属性或开发者类名表明不可信内容时,标签级联到全部后代,该子树不再查询。
- 能力:非开发者子树同时得到来源和能力。任务不需要的内容被剪掉;任务需要的内容限制为只读,可观察、不可交互。
策略模型与机械隔离
- 来源级剪枝:另一个策略模型只看任务描述、不看DOM,决定需要哪些来源,从而整类剪掉user、hosted-party或external。作者称攻击者因此不能靠页面内容改变保留哪些来源。
- 执行边界:处理的是捕获到的HTML、无障碍树和DevTools元数据,不改实时DOM。越权节点从观察中删除;只读元素去掉或禁用目标标识符。动作返回后先查同一能力表,标识符已删或能力不足则拒绝,再交给Playwright。
- 重复:每个动作后重新捕获并过滤。作者称邻近页面状态的DOM结构可缓存,标签和能力表可复用。论文未写各组件的温度、阈值或模型名。
安全论证
- 三种放置:Case 1,注入不在目标关键路径上,动作门无注入。Case 2,注入在路径上但先有结构线索,Biba解析在暴露注入前已限制能力。Case 3,注入在路径上且无先行线索,两步都不能排除标注时见到攻击内容。作者称攻击者必须同时打败两个机制。
- 非正式论证:作者枚举三条路:影响动作门、影响Biba解析、绕过执行。前两条在Case 1和Case 2被路径输入限制挡住。动作空间封闭,没有任意JavaScript;隔离是确定性代码,不依赖LLM,挡在每次动作之前。
- 残余:Case 3中,作者称标签仍可能正确,但即使标错,也不含该注入的其他元素能力不受影响。
论文做了哪些实验?
启用后三种攻击平均ASR从85.5%到0.7%,良性TSR从29.9%到26.6%。
实验设置
- 智能体:主实验用gpt-5.4-mini。选型时在完整WebArena上比较gpt-5.4、gpt-5.4-mini、gpt-5.4-nano,reward-weighted TSR为33.6%、30.8%、16.0%。快照分别为gpt-5.4-2026-03-05、gpt-5.4-mini-2026-03-17、gpt-5.4-nano-2026-03-17(Table 6)。
- 防御侧模型:作者称推理成本不高于或相当于智能体。标注对比为Gemini 3 Flash、GPT-OSS-120B、Qwen3-8B、MiniMax-M2.5、GPT-5.4-mini、GPT-5.4-nano。Table 2里动作门、Biba解析和策略模型各用哪一个,论文未说明。Table 5另列gpt-oss-20b与gemini-3-flash-preview,论文未说明前者角色,也未写明后者是否即正文的Gemini 3 Flash。
- 环境与攻击:WebArena,含GitLab、购物、论坛风格站点、CMS等。三种弹窗模板为Shortcut、Completion(正文亦称Fake Completion)、Ignore(Ignore Instruction),改编自Pop-up攻击;注入位置限于恶意用户或外部方能改的DOM。另有WASP与自适应WA20。
- 指标:TSR按WebArena定义,结合程序检查、LLM-as-a-judge和字符串匹配;裁判模型论文未说明。ASR指智能体与注入的恶意内容交互。DSR指Prismata移除注入或将其降为只读。
- 重复与人工:每个实验三次,报告均值和标准差。标注验证从各站良性基线观察中随机抽4条,共20条、5个站点,1名专家与每个候选模型各标一次,约20小时。Table 2的任务条数论文未说明。
- 语料标注:§3用两个未具名语言模型标来源,以及结构线索第一次出现的区间;来源模型的提示对照人工检查页做了手工迭代。
主结果
据Table 2,智能体为gpt-5.4-mini,三次均值(%)。无攻击时ASR、DSR不适用,表中为未报告。防御组件模型论文未说明。
表格较宽,可左右滑动
设置 无TSR 有TSR 无ASR 有ASR 有DSR 良性基线 29.9 26.6 未报告 未报告 未报告 Shortcut 11.2 24.4 63.9 2.1 88.4 Completion 2.3 24.8 92.5 0.0 95.8 Ignore 0.0 19.9 100.0 0.0 95.1 标准差:良性TSR为1.4与0.3;Shortcut的TSR为0.9与1.1、ASR为2.0与0.4、DSR为2.0;Completion的TSR为0.3与0.8、ASR为0.7与0.0、DSR为2.7;Ignore的TSR为0.0与0.7、ASR为0.0与0.0、DSR为5.0。
- 作者汇总:§5.2称三种攻击平均TSR从4.5%到23.0%(+18.5个百分点,相对约5.1倍),平均ASR从85.5%到0.7%,平均DSR为93.1%,ΔASR为−84.8个百分点。引言的评测摘要与这些平均一致。
- 分项:作者称Completion与Ignore的ASR被压到表中的0.0%,Shortcut启用后仍非零,其DSR也低于另两行。攻击下TSR仍低于良性基线。作者未解释Shortcut的残余。
- 两指标关系:作者称ASR与DSR不互补。攻击成功一定算防御失败;智能体自己忽略注入时,攻击可失败,而Prismata并未移除或降级它。
关键路径测量
- 语料:Common Crawl取Tranco top 10K中2,832个域名、每域名100页,共283,200个存档DOM。标注语料为每域名一页再加等量Mind2Web页,共5,664个DOM,两边各半。不可信路径90,408条,其中Common Crawl 24,992条、Mind2Web 65,416条。
- 覆盖:1,086条(1.2%)含可操作后代;其中94条在动作前没有结构线索,占可操作案例8.7%、全语料0.10%。这94条里79条(84%)是普通链接:57个a[href]、22个role=link。
- 残余:作者假设同域GET不改变状态,则残余从0.10%到0.017%,即15个非链接控件。Figure 5图注称多数站点对几乎全部不可信路径满足这两项条件;提取文本没有曲线端点。Figure 6与正文称同站DOM增多时谱系缓存覆盖上升,Mind2Web更陡、Common Crawl更缓;正文未给缓存率数值。
WASP与自适应攻击
- WASP:Table 3中E2E与Int.在无Prismata时Goal 0为1/21、Goal 1为0/21;启用后两行均为0/21与0/21。作者称无防御时plain-goal在Goal 0成功一次,启用后被挡住;该任务用站点账户管理功能改用户邮箱。正文未定义Int.,也未解释Goal 0与Goal 1的差别。
- 自适应:作者称WA20上的端到端攻击成功被消除。Table 3里启用后与Shortcut、Completion对齐的ASR为0.0;无防御的Shortcut为100.0、Completion为65.0。Ignore一行在提取文本中与标记错位,其无防御数字不采用。论文未说明迭代轮数或查询次数。
- 例外:自适应Completion的无防御ASR 65.0%低于Table 2的92.5%。作者未解释。Goal 1在无防御时已是0/21。
标注验证
- 对照:专家替换Biba解析的所有权与能力标注,其余级联和执行不变。允许元素是策略和机械隔离之后仍可用的元素。precision低表示过宽,recall低表示过严。样本为20条观察。
- 六模型:作者称每个模型precision超过93%、F1超过87%,最强配置的precision在95%到99%之间。作者称GPT-5.4-nano的precision最高,为98.69%,recall最低,为82.69%。作者称Gemini 3 Flash的F1最高,为95.14%。开源三模型precision也高,但recall更低。Figure 8是20对观察的平均;除这些数字外,提取文本没有各柱高度。
- 分站:Figure 9中GPT-5.4-nano各站precision不低于95%,F1高于89%,recall最低在Maps;Maps的精确recall论文未给。作者称F1是元素平均,抓不住最坏情况,单次关键误标仍可能放过攻击相关元素,不过能力限制仍可能拦住。人工标注可能疲劳,故每站最多四条。
其他消融与分析
- 良性TSR均值差3.3个百分点(§5.4);作者称保留了大部分基线效用。
- WA20匹配运行:智能体请求时长从1,649.8s到1,781.4s;策略模型459.0s,动作门1,098.2s,Biba解析789.6s(§5.4、Figure 10)。
- 20任务缓存后费用从$1.105到$1.623。正文称KV复用避免$1.821、请求级复用避免$1.102;Figure 10D标注$2.023、$1.102、$0.202,与正文的KV数字不一致。
- 选型用的reward-weighted TSR与Table 2良性TSR 29.9%不是同一数字,论文未说明差别来自何处。
- 可操作后代的判定:非隐藏表单控件、链接、label目标、交互ARIA角色、onclick、可编辑区或tabindex(§3)。
- 论文未报告攻击循环的查询次数,也未与其他防御做数值对比。
有什么可以进一步探索的点?
作者指出以完整性优先于标注准确率,且文本模态与权限内攻击不在范围内。
作者指出的局限与后续方向
- 完整性对准确率:作者称关键局限是有意用完整性换准确率。能看到父子节点的模型可能标得更准,但本方法在所述动作空间和威胁模型下机械阻止向上篡改和权限提升(§6.3)。
- 模型与页面快照:作者称受策略模型、动作门和Biba解析所用模型的准确率限制。捕获DOM与执行时实时页面的偏差,作者称是LLM网页智能体的根本限制,不是Prismata引入的(§6.3)。
- 页面结构:标注依赖HTML布局及标题、链接目标等信号,本质上是启发式的。验证研究用于对照安全导向的人工参照,作者称不是在主张ground truth(§6.3)。
- 模态:只处理文本。作者称基于梯度的图像扰动、非文本越狱和多模态攻击仍可利用;把同一DOM权限映射进截图超出本文范围(§2.1、§6.3)。
- 权限内攻击:只防御目标超出任务所需权限的XSP。虚假评论等权限内影响,作者称更适合模型级推理(§2.1)。
- 高需求任务:有些任务可能需要全部内容类型和全部能力。作者建议后续把大量不可信工作交给隔离的网页智能体,类似工具调用中的隔离模型(§6.3)。
实验覆盖范围
- 主攻击表在WebArena上比较Shortcut、Completion、Ignore,开启与关闭Prismata,每设置三次;另有WASP(分母21,E2E与Int.,Goal 0与Goal 1)和自适应WA20(Table 2、Table 3、§5.1–§5.2)。
- 被测智能体主模型为gpt-5.4-mini;完整WebArena上还报告gpt-5.4与gpt-5.4-nano的reward-weighted TSR(§5.1)。
- 标注验证覆盖GitLab、Maps、Reddit、Shopping、Shopping Admin,共20条观察、每站4条、1名专家、6个标注模型,各标一次(§5.3)。
- 结构测量覆盖283,200个存档DOM、5,664个标注DOM和90,408条不可信路径;开销测量为匹配的WA20、20个任务(§3、§5.4)。
- 论文未报告Table 2的任务条数、三个防御组件各自的模型、自适应迭代次数、WebArena裁判模型,以及攻击判定与人工的一致性。§3的两个语料标注模型也未具名。
总结一下论文的主要内容
Prismata用关键路径和Biba约束隔离XSP,三种攻击平均ASR从85.5%降到0.7%。
Prismata是面向网页智能体Cross-Site Prompting的系统级最小权限防御,不依赖站点开发者标注。
- 问题:良性页面把开发者结构与用户、托管方和外部内容混在一起。动作名本身没有安全语义,策略却要从可能含注入的结构中导出。
- 方法:动作门只接收任务和该元素的DOM关键路径;Biba解析按祖先与结构线索锁定来源,标签不能高于父节点。策略模型只看任务。确定性代码删除越权内容并拒绝超限工具调用,有效权限取两者更严者。
- 结构测量:90,408条不可信路径中,1.2%含可操作后代;无先行线索者占0.10%。作者称在同域GET不改变状态的做法下,残余为0.017%。
- 攻防数字:WebArena上以gpt-5.4-mini为智能体,三种弹窗攻击平均ASR从85.5%到0.7%,攻击下平均TSR从4.5%到23.0%,平均DSR为93.1%。良性TSR从29.9%到26.6%。作者称自适应WA20的端到端攻击成功被消除;WASP的plain-goal在Goal 0无防御时成功一次,启用后被挡住,Goal 1无防御时也未成功。
- 标注:作者称六个标注模型的允许元素precision均超过93%;作者称最高值为GPT-5.4-nano的98.69%,其recall为82.69%。
- 作者结论:作者称当目标落在未受污染的关键路径上,或污染路径有先行结构线索时,决定性标注可以不接触攻击内容,并保留大部分良性效用。权限内误导、非文本输入和需要全部不可信能力的任务不在当前保证内。