java8将io.file转换为dom.document

frebpwbc  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(475)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
我有以下用法:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import java.io.File;

private void func(File file) {

DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = documentBuilder.parse(file);

...

}

我不能再使用documentbuilderfactory了,因为该类存在安全漏洞(甚至导入都没有,所以如何防止xxe攻击在这里没有帮助)-我如何替换它以获得相同的结果?

jutyujz0

jutyujz01#

使用这个https://rules.sonarsource.com/java/rspec-2755 并将dom4j文档转换为w3c文档源,解决方案如下所示:

private void func(File file) {

SAXReader xmlReader = new SAXReader();
xmlReader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); // Compliant
Document doc = new DOMWriter().write(xmlReader.read(file));

...

}

相关问题