SVG 净化为何注定失败
推荐指数 50.0 NO. 011 · 2026.04.28
发布2026/04/27Score109Comments41
为什么值得看
Scratch 团队回顾六年 SVG 安全漏洞史,从 script 标签 XSS 到 CSS 解析绕过,发现净化策略永远滞后于攻击面。核心教训:任何将用户 SVG 插入主 DOM 的操作,无论多短暂,本质都是不可信的。
编辑判断
Scratch 的困境其实是所有 UGC 平台的缩影:Notion、Figma、Excalidraw 都允许用户上传 SVG,多数也采用类似净化策略。真正安全的做法不是净化而是隔离——用沙箱 iframe、CSP 严格限制、或者服务端 rasterize 成位图。对于 AI 创业团队,如果你的产品涉及用户生成可视化内容,建议直接放弃客户端 SVG 渲染,改用 Canvas 或 WebGL 绘制路径,彻底消除 DOM 注入攻击面。安全团队的人力不应该浪费在和浏览器解析器的军备竞赛上。