标准答案
- 默认将模型输出当文本处理,Markdown 解析器要禁用或严格清洗原始 HTML、危险协议 URL、事件属性和脚本内容。
- 代码块只做高亮展示,不能执行;复制时复制原始代码,不复制高亮后的 HTML。外部链接应校验协议并按产品策略增加安全属性。
- 流式阶段可先显示纯文本或受限 Markdown,结束后再做完整解析和安全清洗;服务端也应限制不可信内容进入模板、SQL 或 Shell。
题目解析
Vue 的模板转义不能保护使用 v-html 的 Markdown 结果。清洗库配置和 URL 协议白名单要有测试,不能只依赖模型“不要输出脚本”。
代码生成场景也可能包含恶意命令、依赖和路径。展示安全不等于执行安全,运行代码必须另有沙箱和人工确认。
引用链接和图片会带来额外网络请求和隐私泄露,应限制域名或通过安全代理处理。
常见误区
- 把模型 Markdown 原样 v-html 渲染。
- 因为内容看起来是代码就自动运行或提供一键执行。
- 只在前端清洗,服务端又把同一输出用于 HTML 邮件或日志页面。