A2UI 生产安全:威胁模型与发布清单
覆盖 Schema 校验、Catalog、URL、Action、隐私、YMYL 流程、韧性与无障碍的 A2UI 安全指南。
A2UI 缩小了 Agent 与应用之间的接口,但负载仍不可信。只有组件实现、属性、Action 与依赖共同执行边界时,组件白名单才真正有效。
威胁模型
应假设模型可能遭遇间接 Prompt Injection,传输可能重放或截断消息,Catalog 可能包含高风险能力,URL 可能恶意,Action 可能在服务端状态变化后才到达。还应认识到:看似合法的内容无需利用代码,也可能误导用户。
官方项目已经修复 URL 打开导致的 XSS/反向标签劫持与 DataModel 原型污染。这些修复说明声明式架构仍依赖最新依赖、严格路径处理和渲染器加固。
渲染边界
依据协商版本校验每条消息。拒绝未知属性、重复 ID、无法解析的引用、不支持 Catalog、危险路径段、过深树、超大列表和高频更新。按协议与来源限制 URL;净化 Markdown,默认禁用原始 HTML;将 iframe、WebView、下载、剪贴板、导航、支付和认证组件视为高权限能力。
组件属性和共享数据模型不得包含密钥、访问令牌、会话标识或私有 Prompt。审计日志记录必要标识与结果,同时脱敏机密内容。
Action 边界
服务端必须授权每个 Action,重新核验用户、资源、金额、目标与当前状态;可重试的高影响操作使用幂等键。删除、发布、账户变更、购买、支付和披露敏感数据必须获得明确确认。
金融、医疗、法律或安全流程中的生成界面不得在缺少权威确认时暗示保证收益、诊断、法律结论或交易完成。必须提供专业复核路径并展示不确定性。
无障碍与失败行为
安全也包括避免强迫性或不可访问流程。应保留名称、角色、焦点顺序、键盘操作、错误关联、对比度、减少动态效果和 Live Region;不得只依赖颜色表达状态。不支持组件、非法负载、渲染失败和超时都要提供文本降级。
发布前测试半包、重复投递、重连、过期 Action、Surface 删除、大负载、依赖受损与 Agent 不可用,并结合真实 Catalog 与传输逐项审核生产安全清单。
常见问题
声明式 A2UI 能彻底消除 XSS 吗?
不能。它降低直接生成代码的风险,但渲染组件、URL、Markdown、桥接层和依赖仍需安全实现。
禁用生成按钮就完成授权了吗?
没有。所有高影响 Action 都必须基于最新服务端状态重新授权。