各位程序员,
我正在开发一个需要清除几个强化问题的 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。
任何帮助将不胜感激。
谢谢!