跳到内容

suspicious-xml-expat-builder-usage (S316)

源自 flake8-bandit linter。

作用

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

为什么这不好?

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

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

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

示例

from xml.dom.expatbuilder import parse

parse("untrusted.xml")

建议改为

from defusedxml.expatbuilder import parse

tree = parse("untrusted.xml")

参考