You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于safe-svg jar的SVG元素/属性定义依据及替代验证工具问询

SVG安全验证相关问题

我们使用safe-svg validator jar,它会基于自身定义的SVG_ELEMENTS和SVG_ATTRIBUTES集合验证SVG文件——如果SVG用到不在集合内的标签或属性就会触发违规,比如missing-glyph、font-face-src、xmlns:xodm、horiz-adv-x这些都是它不支持的标签/属性。现咨询两个问题:

  1. SVG_ELEMENTS和SVG_ATTRIBUTES的有效/无效标签判定依据是什么?
  2. 除safe-svg jar外,还有哪些SVG文件安全验证工具?

问题1:SVG_ELEMENTS和SVG_ATTRIBUTES的判定依据

safe-svg的元素与属性白名单,核心判定逻辑围绕安全风险过滤+基础展示需求:

  • 优先排除高风险内容:所有涉及动态执行(如script标签)、外部资源引用(可能加载恶意文件的属性)、非标准自定义命名空间(如xmlns:xodm)的元素/属性,都会被标记为无效。
  • 仅保留静态绘图所需内容:只纳入用于基础图形渲染的元素(如rect、circle、path)和属性(如fill、stroke);像missing-glyph、font-face-src这类和字体定制、特殊字形相关的内容,因不属于通用静态展示场景,且可能带来字体加载风险,所以不在白名单内。
  • 部分参考W3C SVG标准,但最终以工具自身的安全优先级为准,并非完全照搬标准条目。

问题2:其他SVG安全验证工具

  • DOMPurify:支持前端/Node.js环境,通过白名单机制清洗SVG,过滤危险元素与属性,直接输出安全的SVG字符串。
  • SVG Sanitizer:.NET生态下的专用SVG清理工具,基于白名单过滤危险内容,适配.NET项目的SVG验证需求。
  • Apache Batik:自带SVG解析与处理模块,可自定义规则检测并移除SVG中的脚本、危险元素等不安全内容。
  • ImageMagick:作为图片处理工具,也支持SVG安全校验,可配置禁止外部资源加载、脚本执行等规则,处理时自动过滤风险内容。

内容的提问来源于stack exchange,提问作者Ind mat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:25:31