как предотвратить внедрение XML-сущностей с помощью JAXB

Я ссылаюсь на эту ссылку,

но все же инструмент kiwan показывает мне очень высокие УЯЗВИМОСТИ в строке xif.createXMLStreamReader(soapHeader.getSource()). Пожалуйста, помогите мне, если кто-нибудь знает.

Мой код выглядит следующим образом:

SoapHeader soapHeader = ((SoapMessage) message).getSoapHeader();

 XMLInputFactory xif = XMLInputFactory.newFactory();
 xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES,false);
 xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);

XMLStreamReader soapHeaderXsr = xif.createXMLStreamReader(soapHeader.getSource());
unmarshaller.unmarshal(soapHeaderXsr);

Спасибо.


person Hitesh    schedule 06.11.2019    source источник
comment
Вы делаете правильные вещи. Я подозреваю ложное срабатывание вашего инструмента SAST.   -  person SPoint    schedule 21.11.2019


Ответы (1)


Я решил эту проблему, добавив дополнительные свойства XMLInputFactory:

xif.setProperty(XMLInputFactory.SUPPORT_DTD, ложь);

Самый безопасный способ предотвратить XXE — полностью отключить DTD (внешние объекты).

Установите для свойства DTD значение false, чтобы получить дополнительную информацию по этой ссылке.

теперь устраните уязвимости в моем коде

Спасибо

person Hitesh    schedule 22.11.2019