有什么方法可以使用户上传的 SVG 图像免受代码注入等的影响?
Is there any way to make user uploaded SVG images safe from code injection etc?
我想在网站上显示用户上传的 SVG 图片,但它们很容易受到攻击:
- https://security.stackexchange.com/questions/11384/exploits-or-other-security-risks-with-svg-upload
- https://security.stackexchange.com/questions/36447/img-tag-vulnerability
例如,arbitrary javascript can be embedded in SVG。性能漏洞也存在问题,但我认为这些优先级较低。
是否有任何机制可以使 SVG 在一定程度上安全并仅将其用作图像?我可以简单地信任 <img src="/media/user-uploaded-image.svg" />
吗?
Wikipedia/Wikimedia Commons 托管 SVG 文件。有谁知道他们采取了什么措施来防止 SVG 漏洞利用?
如果您将 SVG 作为 <image>
嵌入,它应该无法执行脚本。
看这里:https://www.w3.org/wiki/SVG_Security
当然,您也可以在处理之前解析文档,并应用与 html 文件相同的过滤器和正则表达式。
Wikipedia/Wikimedia Commons hosts SVG files. Does anyone know what measures they take to prevent SVG exploits?
他们从一个单独的主机名提供上传的文件,特别是 upload.wikimedia.org
。您可以随心所欲地跨站点脚本进入那里,但它不会给您带来任何好处:它与 en.wikipedia.org
的来源不同,无法触摸其 cookie 或与其脚本交互。
这最终是处理文件上传的唯一无懈可击的方式,也是大多数大公司所做的。当您允许任意文件时,很难对所有存在的所有模糊 XSS 可能性进行彻底扫描。
Can I simply trust <img src="/media/user-uploaded-image.svg" />
?
<img>
做什么并不重要——用户可以直接导航到 SVG 地址,它将在站点的源中执行脚本整页。
我想在网站上显示用户上传的 SVG 图片,但它们很容易受到攻击:
- https://security.stackexchange.com/questions/11384/exploits-or-other-security-risks-with-svg-upload
- https://security.stackexchange.com/questions/36447/img-tag-vulnerability
例如,arbitrary javascript can be embedded in SVG。性能漏洞也存在问题,但我认为这些优先级较低。
是否有任何机制可以使 SVG 在一定程度上安全并仅将其用作图像?我可以简单地信任 <img src="/media/user-uploaded-image.svg" />
吗?
Wikipedia/Wikimedia Commons 托管 SVG 文件。有谁知道他们采取了什么措施来防止 SVG 漏洞利用?
如果您将 SVG 作为 <image>
嵌入,它应该无法执行脚本。
看这里:https://www.w3.org/wiki/SVG_Security
当然,您也可以在处理之前解析文档,并应用与 html 文件相同的过滤器和正则表达式。
Wikipedia/Wikimedia Commons hosts SVG files. Does anyone know what measures they take to prevent SVG exploits?
他们从一个单独的主机名提供上传的文件,特别是 upload.wikimedia.org
。您可以随心所欲地跨站点脚本进入那里,但它不会给您带来任何好处:它与 en.wikipedia.org
的来源不同,无法触摸其 cookie 或与其脚本交互。
这最终是处理文件上传的唯一无懈可击的方式,也是大多数大公司所做的。当您允许任意文件时,很难对所有存在的所有模糊 XSS 可能性进行彻底扫描。
Can I simply trust
<img src="/media/user-uploaded-image.svg" />
?
<img>
做什么并不重要——用户可以直接导航到 SVG 地址,它将在站点的源中执行脚本整页。