如何在JAXP 1.1 / Java 1.4中禁用XML外部实体(XXE)处理?

时间:2016-02-04 02:23:08

标签: java xml owasp jaxp java1.4

我正在努力确保某些代码不容易受到XXE攻击。对于在Java 7和Java 8上编译和运行的东西,我已经成功完成了OWASP的建议 - 请参阅https://www.owasp.org/index.php/XML_External_Entity_%28XXE%29_Processing的Java部分

以下是相关的片段,缩小了:

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

  String FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
  dbf.setFeature(FEATURE, true);

  FEATURE = "http://xml.org/sax/features/external-general-entities";
  dbf.setFeature(FEATURE, false);

  FEATURE = "http://xml.org/sax/features/external-parameter-entities";
  dbf.setFeature(FEATURE, false);

  dbf.setXIncludeAware(false);
  dbf.setExpandEntityReferences(false);

然而,还有(叹气)需要修复的Java 1.4版本的代码。但是在Java 1.4中,DocumentBuilderFactory具有setFeature()方法,因此这种方法似乎不适用。

我花了一些时间进行搜索,但是在Java 1.4 / JAXP 1.1处理上并没有太多遗漏,即使找到了解决方案,文档中的链接也常常没用。到目前为止,我还没有找到如何在Java 1.4中禁用XXE,所以我在这里问。

0 个答案:

没有答案