研究员,
我正在研究需要清除几个强化问题的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。
任何帮助都会得到真正的赞赏。
谢谢!