必须使用defusedxml替代标准库xml模块,因其默认禁用外部实体、限制嵌套深度(100层)、字符数(10MB)等,防止XXE、billion laughs等攻击;标准库默认启用外部实体且无资源限制,易导致RCE或DoS。
Python解析不可信XML时,必须防止XXE(XML外部实体)攻击、 billion laughs 攻击、以及递归实体展开等安全风险。DefusedXML 是专为解决这些问题设计的库,它通过禁用危险特性、设置严格解析限制,来替代 Python 标准库中不安全的 xml 模块。
Python 原生的 xml.etree.ElementTree、xml.dom.minidom 和 xml.sax 默认启用外部实体解析,且不限制嵌套深度或实体展开数量。攻击者可构造恶意 XML,导致拒绝服务(
内存耗尽、CPU 占满)甚至读取本地文件(如 file:///etc/passwd)。
安装后,用对应模块直接替换原生导入,无需修改业务逻辑:
# 安装
pip install defusedxml
# 替换示例(ElementTree 场景)
# ❌ 不安全
from xml.etree.ElementTree import fromstring
# ✅ 安全替换
from defusedxml.ElementTree import fromstring
defusedxml 提供了与标准库完全兼容的封装模块:
defusedxml.ElementTree → 替代 xml.etree.ElementTree
defusedxml.minidom → 替代 xml.dom.minidom
defusedxml.pulldom → 替代 xml.dom.pulldom
defusedxml.sax → 替代 xml.sax
defusedxml.expat → 替代 xml.parsers.expat
defusedxml 在底层禁用了高危功能,并设定了保守的资源上限:
resolve_entities=False),杜绝 XXE若需微调策略(例如允许极小范围的内部实体),可通过参数传入限制配置:
# 示例:放宽单次解析最大字符数到 50MB,但依然禁用外部实体
from defusedxml.ElementTree import parse
parser = defusedxml.ElementTree.XMLParser(
resolve_entities=False,
forbid_dtd=False, # 仅当真需要 DTD 时才设 True
forbid_entities=True, # 推荐保持 True
max_entity_expansions=1000,
max_xml_size=50_000_000
)
tree = parse("untrusted.xml", parser)
注意:除非明确了解风险,否则不要启用 resolve_entities 或 forbid_dtd=False;绝大多数 Web API 场景应保持默认最严策略。
相关文章:
TestNG的testng.xml配置文件怎么写
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
ui设计制作网站有哪些,手机UI设计网址吗?
如何快速搭建二级域名独立网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
建站之星伪静态规则如何正确配置?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何通过虚拟主机快速完成网站搭建?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何在腾讯云服务器快速搭建个人网站?
教学论文网站制作软件有哪些,写论文用什么软件
?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站168自助建站系统:快速模板定制与SEO优化指南
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何选购建站域名与空间?自助平台全解析
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
股票网站制作软件,网上股票怎么开户?
建站主机是否等同于虚拟主机?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何正确下载安装西数主机建站助手?
建站之星代理如何获取技术支持?
模具网站制作流程,如何找模具客户?
已有域名和空间如何搭建网站?
如何选择建站程序?包含哪些必备功能与类型?
,想在网上投简历,哪几个网站比较好?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
如何挑选最适合建站的高性能VPS主机?
招商网站制作流程,网站招商广告语?
建站之星安装后界面空白如何解决?
制作网站外包平台,自动化接单网站有哪些?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
网站企业制作流程,用什么语言做企业网站比较好?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在云主机上快速搭建网站?
如何在万网ECS上快速搭建专属网站?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何配置FTP站点权限与安全设置?
如何用PHP快速搭建CMS系统?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
c# 在高并发场景下,委托和接口调用的性能对比
建站之星后台管理:高效配置与模板优化提升用户体验
北京网站制作的公司有哪些,北京白云观官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。