首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为Oracle DomParser解析XXE

为Oracle DomParser解析XXE
EN

Stack Overflow用户
提问于 2018-05-17 15:55:39
回答 3查看 540关注 0票数 0

这是我使用的DomParser的代码片段,我使用的DomParser是Oracle的。

代码语言:javascript
复制
import oracle.xml.parser.v2.DOMParser;

DOMParser domParser = new DOMParser();      
domParser.parse(new StringReader(xmlPayload));    
Document doc = domParser.getDocument();

doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("student");

最近,我们的安全团队提出了一个问题,即上述DOM解析器容易受到安全攻击,并提出了设置两个属性的建议

代码语言:javascript
复制
domParser.setAttribute("RESOLVE_ENTITY_DEFAULT", true);
domParser.setAttribute("DEFAULT_ENTITY_EXPANSION_DEPTH", 150);

但是在设置这些属性时,我得到了下面的错误,

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException
at oracle.xml.parser.v2.XMLParser.setAttribute(XMLParser.java:870)
at oracle.xml.parser.v2.DOMParser.setAttribute(DOMParser.java:538)
at DomParserExample.main(DomParserExample.java:20)

请告诉我如何防止XML实体扩展注入和XXE攻击。我试着查看了OWASP XEE Cheat,浏览了XXE攻击的各种问题和答案,但找不到解决方案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-04 03:54:38

尝尝这个

代码语言:javascript
复制
domParser.setAttribute(XMLParser.RESOLVE_ENTITY_DEFAULT, true);
domParser.setAttribute(XMLParser.DEFAULT_ENTITY_EXPANSION_DEPTH, 150);
票数 1
EN

Stack Overflow用户

发布于 2020-07-29 09:43:24

这里记录了在Oracle DOMParser中处理XXE的正确方法。

https://docs.oracle.com/en/database/oracle/oracle-database/18/adxdk/security-considerations-oracle-xml-developers-kit.html#GUID-45303542-41DE-4455-93B3-854A826EF8BB

代码语言:javascript
复制
    // Extend oracle.xml.parser.v2.XMLParser
    DOMParser domParser = new DOMParser(); 

    // Do not expand entity references
    domParser.setAttribute(DOMParser.EXPAND_ENTITYREF, false);

    // dtdObj is an instance of oracle.xml.parser.v2.DTD
    domParser.setAttribute(DOMParser.DTD_OBJECT, dtdObj);

    // Do not allow more than 11 levels of entity expansion
    domParser.setAttribute(DOMParser.ENTITY_EXPANSION_DEPTH, 12); 
票数 0
EN

Stack Overflow用户

发布于 2019-11-29 01:36:58

使用XMLParser和DOMParser来解决DOM解析器的增强修复的maven依赖版本是什么?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50386159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档