Разрешение XXE для Oracle DomParser - PullRequest
0 голосов
/ 17 мая 2018

Вот фрагмент кода для DomParser, который я использую, DomParser, который я использую, имеет Oracle.

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-парсер уязвим для атаки безопасности, и предложила установить два атрибута

domParser.setAttribute("RESOLVE_ENTITY_DEFAULT", true);
domParser.setAttribute("DEFAULT_ENTITY_EXPANSION_DEPTH", 150);

Но при установке этих атрибутов я получаю ошибку ниже,

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 Entity Expansion и XXE-атаки. Я пытался заглянуть в Шпаргалку OWASP XEE и пролистал различные вопросы и ответы для атаки XXE, но не смог найти решения для этого.

1 Ответ

0 голосов
/ 03 декабря 2018

попробуйте

domParser.setAttribute(XMLParser.RESOLVE_ENTITY_DEFAULT, true);
domParser.setAttribute(XMLParser.DEFAULT_ENTITY_EXPANSION_DEPTH, 150);
...