跳到内容

可疑的 XML 元素树使用 (S314)

源自 flake8-bandit linter。

作用

检查不安全的 XML 解析器的使用。

为什么这不好?

许多 XML 解析器容易受到 XML 攻击(例如实体扩展)的攻击,这些攻击通过利用递归导致过多的内存和 CPU 使用。攻击者可以使用此类方法访问未经授权的资源。

考虑在解析不受信任的 XML 数据时使用 defusedxml 包,以防止 XML 攻击。

预览版中,此规则还将标记对不安全的 XML 解析器的引用。

示例

from xml.etree.ElementTree import parse

tree = parse("untrusted.xml")  # Vulnerable to XML attacks.

建议改为

from defusedxml.ElementTree import parse

tree = parse("untrusted.xml")

参考