gpt4 book ai didi

xml - WebLogic XML 外部实体解析 : Is there another way besides using the XML Registry?

转载 作者:数据小太阳 更新时间:2023-10-29 02:11:44 29 4
gpt4 key购买 nike

我们有一个使用 SiteMesh 的应用程序,当 WebLogic 尝试解析 TLD 文件时,它会在“http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd”处看到 DOCTYPE 规范,其中包含对 TLD DTD 的引用。

服务器无法发起到 Internet 的出站连接,因此无法检索 DTD,这会导致应用程序部署失败。

我知道这个问题可以通过在 WebLogic 控制台中设置一个 XML 注册表来解决,并在尝试解析时指定要返回的本地文件,例如“http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd”。

是否有任何其他方法可以防止服务器外出到“网络”来解析外部实体引用?通过将 DTD 与应用程序打包并以某种方式通知服务器在那里而不是“在那里”寻找 DTD?

最佳答案

快速提问,您是否出于安全原因尝试这样做?想防止任何类型的 XXE 攻击?

如果是这样,您可以实现自己的 EntityResolver 并处理解析器如何进行本地或远程查找。

示例可以在这里找到https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=61702260

否则您需要设置 XMLInputFactory 的配置属性以获得您想要的行为。特别是 javax.xml.stream.isSupportingExternalEntities 和 javax.xml.stream.isValidating 仅取决于您是否认为需要验证。

http://docs.oracle.com/javaee/5/api/javax/xml/stream/XMLInputFactory.html

如果对您的使用有意义,还可以查看 StaX 解析器。

关于xml - WebLogic XML 外部实体解析 : Is there another way besides using the XML Registry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209743/

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