Java 1.6中的XXE预防

时间:2017-05-05 18:11:48

标签: java security xml-parsing dtd xxe

研究员,

我正在研究需要清除几个强化问题的java 1.6应用程序。到目前为止最成问题的是XML外部实体,因为1.6中似乎没有对策。即使是OWASP备忘单也说:

  

请使用Java 7更新67,Java 8更新20或更高版本,否则DocumentBuilderFactory和SAXParserFactory的上述对策不起作用。

经过一些研究后,我找到了一些有助于防止XXE的指令和设置,但没有最终结果。所以任何帮助将不胜感激。这是我正在处理的代码。

    public void load(String x, int i) {

    // correcion de vulnerabilidades 26 y 29
    try {
        // Read the XML - Parse the batch class list and get the first ID.


        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

         //XXE Protection Code Goes Here
        dbf.setExpandEntityReferences(false);
        dbf.setValidating(false);
        dbf.setNamespaceAware(true);
        //End of XXE protection code


         DocumentBuilder docBuilder = dbf.newDocumentBuilder();
         System.out.println("El documento es:"+docBuilder.isValidating());
         oXmlDoc = docBuilder.parse(new InputSource(new StringReader(x)));

    } catch (Exception e) {
        e.printStackTrace();
    }
}

令人遗憾的是,尽管我付出了最大的努力,但由于姐妹应用和网络也是1.6,我无法将应用程序带到java 8和7。

任何帮助都会得到真正的赞赏。

谢谢!

0 个答案:

没有答案