【发布时间】:2018-05-13 03:16:07
【问题描述】:
我不太了解 SVG 标准及其扩展。但是,我读过,SVG 图像可以执行一些脚本。
在网站上显示任何(用户上传的)SVG 图像是否安全?
【问题讨论】:
标签: security svg websecurity
我不太了解 SVG 标准及其扩展。但是,我读过,SVG 图像可以执行一些脚本。
在网站上显示任何(用户上传的)SVG 图像是否安全?
【问题讨论】:
标签: security svg websecurity
只要您将它们加载为<img>,它就应该是安全的。这包括等效用途,例如 background-image。但是当内联或通过<object> 等加载时不安全。
以这种方式加载 SVG 图像时,浏览器遵循特殊规则。例如,SVG 必须是自包含的(即没有外部资源),不会执行脚本,也不会应用 :visited 样式规则。
【讨论】:
img 标签的src 内的base64 编码数据加载SVG 会怎样?例如:<img src="data:image/svg+xml;base64,notRealData..." />。还安全吗?
<script> 元素。理论上,任何运行脚本的东西都可以做恶意的事情。 “取决于浏览器”是一种奇怪的说法。浏览器有一种模式,其中 SVG 的某些功能不可用。