XXE漏洞源于XML解析器未禁用外部实体引用,导致文件读取、内网探测等风险;常见于用户提交XML解析、老旧解析器配置及解析结果直接输出场景;防御需禁用DTD与外部实体、优先使用JSON、最小权限运行并结合工具检测。

XXE(XML External Entity)漏洞,是由于应用程序在解析XML时,未禁用外部实体引用功能,导致攻击者能通过构造恶意XML,读取服务器本地文件、发起内网探测,甚至执行远程请求。核心风险在于:XML解析器默认可能加载定义的外部资源(如<code>file:///etc/passwd或http://192.168.1.100),而程序又直接输出或使用了这些内容。
常见于以下情况:
DocumentBuilder、PHP的libxml、Python的xml.etree.ElementTree)防范XXE不是加一层过滤,而是从解析器行为源头控制:
setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);PHP中调用libxml_disable_entity_loader(true)(PHP 8.0+已默认禁用);Python推荐改用defusedxml库替代原生xml模块开发或测试阶段可简单验证是否仍存在风险:
]><foo>&xxe;</foo>的XML,观察响应是否返回服务器主机名DOCTYPE、external-general-entities等特性基本上就这些。XXE不复杂但容易忽略,默认配置往往是最大破绽。守住解析器这一关,绝大多数XXE风险就能消除。
以上就是XML外部实体注入(XXE)漏洞是什么 如何防范的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号