我计划让网站用户上传他们自己的 SVG 文档并使用inkscape
or svg2pdf
。用户要么未经身份验证,要么经历一个简单的注册过程,所以我预计会有一些黑客尝试。我可以采取哪些过滤措施来最大程度地减少安全威胁?
- Inkscape 似乎并不关心JavaScript 加载标签 http://html5sec.org/#11并愉快地渲染内容,没有发生任何意外(也就是说,我无法使用这种方法让 Firefox 10 弹出警报框)。
- 我担心的是
<image xlink:href />
标签可以使用外部 URI 链接到巨大或格式错误的位图图像 - 理论上这可能会使服务崩溃。有没有一种简单的方法来遍历 XML 文档来过滤这些内容?当然,我可以使用 XMLReader 轻松完成此操作,但想知道我是否可能需要处理诸如onload
对于“onload”(尽管 Firefox 只是将其拒绝为无效,所以也许这是不必要的担心)。 Sidenode:图像本身是可以接受的,但我想我要么要求它们内联data:
或将可接受的目标 URI 列入白名单,并有文件大小限制。
- 是否有任何 SVG 指令(特别是渲染文本)可以包含系统文件的文本内容,例如
/etc/passwd
etc?
- 我还可以采取的一种方法是根据 SVG 规范进行验证。这是我问过的另一个问题的主题here https://stackoverflow.com/questions/9651493/validating-svg-file-in-php-with-xmlreader.
我将 PHP 5.2 与 XMLReader 和 XMLWriter 一起使用,但其他基于 PHP 流的系统也是可以接受的。开发系统为 OS X 10.6.8,生产系统为 LAMP。
是否有任何 SVG 指令(特别是渲染文本)可以包含系统文件的文本内容,例如 /etc/passwd 等?
您需要确保您的特定实施不可能发生 XXE 攻击,see here http://cwe.mitre.org/data/definitions/611.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)