2012-10-24 49 views
3

我们正在考虑允许用户在我们的网络应用中上传SVG。由于我们知道在不可信的SVG中存在大量复杂的漏洞,我们之前一直在犹豫。一位同事发现了Inkscape的--vacuum-defs选项,并且认为它可以使所有不可信的SVGS安全处理。Inkscape的真空防护系统能让SVG真正安全吗?

根据手册页,该选项“从SVG文件的部分中删除所有未使用的项目。如果此选项与--export-plain-svg一起调用,则只有导出的文件会受到影响。单独使用,指定的文件将被修改。“然而,根据我的同事的说法,“删除脚本,删除XML转换,不容忍畸形,删除编码并删除外部导入。”

这是真的吗?如果是这样,我们应该感到安全吗接受不可信的SVGs吗?

+0

安全吗? – rook

回答

1

据我所知,服务不可信SVG的主要问题是SVG文件可以包含Javascript这一事实,SVG很明显,因为嵌入式javascript是格式,但是如果浏览器不小心,它可能会发生在每种类型的上传文件中

因此,即使现代浏览器不能执行在< img>标签中找到脚本,以防万一我认为从不同域中提供的图像并不附加cookies/auth,这样任何执行的脚本都不会损害用户的数据。那将是我首先关心的问题。

当然,如果用户下载SVG,然后从桌面打开它并恰好用浏览器打开它,它可能会执行潜在的恶意加载。所以回到原来的问题,--export-plain-svg确实删除了脚本,但由于我不知道其他特定于SVG的漏洞,我没有检查它们。