5

根据这个答案“出于安全原因,图像必须是独立文件”。也就是说,当使用img标签包含 SVG 文件时,它不能引用任何外部样式表。

我想我在尝试使用 CSS 将 SVG 包含为背景图像时遇到了同样的问题。SVG 链接到其他 SVG 文件并在 Firefox 中直接查看它们时显示正常,但在包含为 CSS 背景图像时无法显示链接的内容。

这些“安全原因”是什么?我在哪里可以找到有关它们的更多信息?

4

1 回答 1

7

考虑一个允许 SVG 图像作为头像的假设论坛。如果允许外部资源,骗子/恶意用户可以上传包含 <image xlink:href="http://evilhacker.com/myimage.png"> 和(假设他们控制 evilhacker.com)的 SVG 文件,他们可以执行以下任何和所有操作:

  • 每当有人查看他们的个人资料时,都会在他们自己的域中收到一个 ping(并记录查看它的人的 IP 地址)
  • 可能会根据 IP 地址、请求标头等为不同的人提供不同外观的头像。
  • 可能随意更改其头像的外观(即等待论坛管理员批准,然后将其更改为 NSFW)

有关更多详细信息,请参阅此 Mozilla 错误SVG 集成规范

于 2012-09-26T14:41:35.030 回答