【问题标题】:Can SVG have malicious content?SVG 可以包含恶意内容吗?
【发布时间】:2018-05-13 03:16:07
【问题描述】:

我不太了解 SVG 标准及其扩展。但是,我读过,SVG 图像可以执行一些脚本。

在网站上显示任何(用户上传的)SVG 图像是否安全?

【问题讨论】:

    标签: security svg websecurity


    【解决方案1】:

    只要您将它们加载为<img>,它就应该是安全的。这包括等效用途,例如 background-image。但是当内联或通过<object> 等加载时不安全

    以这种方式加载 SVG 图像时,浏览器遵循特殊规则。例如,SVG 必须是自包含的(即没有外部资源),不会执行脚本,也不会应用 :visited 样式规则。

    见:https://www.w3.org/wiki/SVG_Security

    【讨论】:

    • 如果使用img 标签的src 内的base64 编码数据加载SVG 会怎样?例如:<img src="data:image/svg+xml;base64,notRealData..." />。还安全吗?
    • SVG 数据的来源是什么并不重要。相同的规则适用。
    • 感谢您的回答。因此,SVG 可能包含恶意内容。而且,这取决于浏览器,它是否尊重 SVG 安全性。因此,不要指望这一点。
    • SVG 有 <script> 元素。理论上,任何运行脚本的东西都可以做恶意的事情。 “取决于浏览器”是一种奇怪的说法。浏览器有一种模式,其中 SVG 的某些功能不可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2013-05-02
    • 2012-10-19
    • 1970-01-01
    • 2012-03-30
    相关资源
    最近更新 更多