配置的XML解析器不会阻止也不限制外部实体的解析

时间:2017-04-13 06:39:52

标签: java xml error-handling fortify

即使我将我的代码更改为我在网络中发现的以下内容,我每次都会一直得到这个错误:

private Document convertInputToDocument(InputStream xml) {
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
        factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
        factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        factory.setIgnoringElementContentWhitespace(true);
        DocumentBuilder builder = factory.newDocumentBuilder();
    return builder.parse(xml);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

背后的原因是强化扫描不会编译那些使用过的软件包,因此无法看到我们提供足够的安全性!