有谁知道防止 JS 在 SVG 内部运行或从 SVG 中剥离 JS 的方法?在我的用例中,我更愿意将图像保留为 SVG,而不是将其转换为 JPG。我考虑过去除脚本标签和属性,但我更愿意避免使用黑名单方法。或者,我已经研究过对所有属性和标签进行白名单方法,但列表非常庞大。关于如何解决这个问题的任何想法?
限制 SVG 中的 JS
信息安全
xss
图书馆
svg
2021-08-15 21:56:01
2个回答
有谁知道防止 JS 在 SVG 内部运行的方法
如果您将 SVG 作为图像嵌入,则保证不会运行任何包含的 JS:
<img src="https://example.com/dangerous.svg">
作为副作用,这也会阻止 SVG 加载任何外部资源。(另请参阅:SVG 作为图像)
如果您觉得花哨,iframe 沙箱也会阻止任何脚本代码执行:
<iframe sandbox src="https://example.com/dangerous.svg"></iframe>
请注意,如果您托管的是用户提供的 SVG,请确保用户不能直接在浏览器中查看它们(通过输入https://yoursite.example/user-images/dangerous.svg
URL),因为这无论如何都会触发 XSS。相反,您需要将不受信任的文件作为附件提供。(另请参阅:存储和重放用户提供的 mime 类型是否安全?)
使用可以解析和转换 SVG 并允许您删除脚本的现有库/软件工具。安全方面的一项重要规则是,如果可以避免重新发明轮子,就不要重新发明轮子。
使用哪个库超出了本网站的范围,但您可以尝试在http://stackoverflow.com/或https://softwarerecs.stackexchange.com/上查看(并可能询问) ,特别是在标签svg下.
像往常一样,在提问之前阅读(并注意)网站的问题指南(例如 ,问题需要什么才能包含“足够的信息”?)。
其它你可能感兴趣的问题