如何从 SVG 文件中删除所有 javascript?

问题描述 投票:0回答:1
javascript svg xss code-injection
1个回答
1
投票

https://digi.ninja/blog/svg_xss.php详细介绍了这一点。

它指出:

  1. 直接查看 - 易受攻击 - 文件直接链接。

  2. 通过内容处置直接查看:附件 - 不易受攻击 - 发送标头以强制下载文件。

  3. 使用 CSP 直接查看 - 不易受攻击 - 内容安全策略设置为禁止内联 JavaScript。

  4. 图像标签 - 不易受攻击 - SVG 通过防止脚本的图像标签引用。

  5. 带有 CSP 的标签 - 不易受攻击 - 图像标签和与上述相同的 CSP,实现双重保护。

  6. 通过 Inkscape 进行清理 - 易受攻击 - 这是直接视图,但文件已通过以下命令进行处理:

    inkscape --file="xss.svg" --verb="FileVacuum" --export-plain-svg="sanitised.svg"
    

(预计这会删除 JavaScript,但事实并非如此。)

  1. iframe 中的图像 - 易受攻击 - SVG 作为 iframe 的源加载,没有设置特殊属性。
  2. 沙盒 iframe 中的图像 - 不易受攻击 - SVG 作为 iframe 的源加载,但沙盒属性设置为 块脚本。

您也可以导出到不存在此问题的其他文件类型。在 Linux 上使用 Inkscape 的 CLI 的示例:

inkscape --export-type="png" /home/x/Pictures/example.svg

https://wiki.inkscape.org/wiki/index.php/Using_the_Command_Line 在“导出文件”下有更多信息。


编辑:以下项目实际上可以去掉 JavaScript:

© www.soinside.com 2019 - 2024. All rights reserved.