Инъекция XML внешнего объекта: Hp Fortify проблема в Java 1.6
Я пытался исправить проблему XEE и пробовал другие варианты, но не работает. Было бы здорово, если бы были какие-либо указатели.
Ниже мой фрагмент кода..
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Source xmlSource = new DOMSource(feed);
Result outputTarget = new StreamResult(outputStream);
TransformerFactory.newInstance().newTransformer().transform(xmlSource,outputTarget);
is = new ByteArrayInputStream(outputStream.toByteArray());
1 ответ
Взгляните на Шпаргалку по профилактике OWASP XXE
основываясь на том, что я вижу в вашем коде, вы должны изменить его следующим образом:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Source xmlSource = new DOMSource(feed);
Result outputTarget = new StreamResult(outputStream);
TransformerFactory tf = TransformerFactory.newInstance();
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
tf.newTransformer().transform(xmlSource,outputTarget);
is = new ByteArrayInputStream(outputStream.toByteArray());