gpt4 book ai didi

xml - 如何针对 XXE 全局配置 XML 解析器?

转载 作者:数据小太阳 更新时间:2023-10-29 03:01:50 27 4
gpt4 key购买 nike

用 Java 解析 XML 变得非常简单。大多数代码最终会调用 DocumentBuilderFactory.newInstance(),它返回易受 XXE kind of attacks by default 攻击的 XML 解析器。 .

OWASP 文档详细解释了如何配置从 DocumentBuilderFactory 返回的 XML 解析器以防止此类攻击,但我如何将其设置为默认值?

我的问题是我正在使用像 JDOM2 这样的库和其他处理 XML 的代码,我不能轻易地更改所有这些代码。我如何使安全解析器成为默认解析器?

我已经看到 DocumentBuilderFactory 支持 javax.xml.parsers.DocumentBuilderFactory 但它如何用于 Web 应用程序?

最佳答案

您可以尝试编写自定义的 DocumentBuilderFactory并为 javax.xml.parsers.DocumentBuilderFactory

设置系统属性

因此 DocumentBuilderFactory.newInstance() 将返回您的自定义类

参见文档 DocumentsBuilderFactory#newInstance

[编辑] 现在这可能会导致 Tomcat 等不支持每个 webapp 的系统属性的 web 容器出现问题。这里的解决方案是为容器设置属性并将自定义工厂放在服务器的类路径中。这样,所有网络应用程序都会使用它 - 这可能是您想要的重要安全功能。

关于xml - 如何针对 XXE 全局配置 XML 解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30710966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com