该工具的目标是让任意 SVG 文件变得无害,并且可以像其他常见 Web 文件格式中的图像一样安全地提供。SVG 文件不仅仅是图像,它们是能够完全访问所有 HTML 和 JavaScript 功能的文档。该工具会过滤 SVG 文件,以移除任何可能具有风险的功能的使用。
移除脚本。防止 SVG 文件被用于跨站脚本攻击。尽管浏览器不允许在 `` 中使用脚本,但当 SVG 文件作为顶层文档直接打开时,浏览器确实允许使用脚本。
移除指向其他域中文档的超链接。降低 SVG 文件对 SEO 垃圾信息和网络钓鱼的吸引力。
移除对跨源资源的引用。阻止第三方追踪谁在查看该图像。
该工具会移除任何不在其允许列表中的元素和属性,并将所有 URL 过滤为仅限同源(不带主机名的路径)。这可能会破坏某些 SVG 图像。当你发现某个图像被过滤得过于严格时,请提交 bug!
该工具可能会通过移除 SVG 文件中不必要的冗余内容来使其变小,但它并不是一个 SVG 优化器。将 svg-hush 与 SVG 优化工具结合使用是安全的。
无论是否进行此过滤,最好都使用限制性的 Content-Security-Policy 来提供 SVG 图像。该工具是一种纵深防御措施,用于应对 CSP 头可能不受支持、丢失或被绕过的情况(例如由于服务器/CMS 配置错误,或由于 ServiceWorker 未转发头信息)。
DOCTYPE。支持内部子集。