Предотвращение атаки XXE (обработка внешних объектов) с помощью веб-служб JAXB + Spring RESTful

Я знаю, что мы можем предотвратить атаку XXE, установив для свойства IS_SUPPORTING_EXTERNAL_ENTITIES в абстрактном классе XMLInputFactory значение false в JAXB.

Я также видел этот ответ на stackoverflow.

Вот мой вопрос,

Как создать экземпляр XMLInputFactory и установить для этого свойства IS_SUPPORTING_EXTERNAL_ENTITIES значение false при загрузке приложения Spring. И этот конкретный экземпляр XMLInputFactory должен использоваться только для всего преобразования JAXB для всех классов, которые используют пакет javax.xml.bind.annotation.


person Nishanth    schedule 03.02.2015    source источник


Ответы (1)


Spring использует RequestMappingHandlerAdapter, который является AbstractHandlerMethodAdapter, который поддерживает HandlerMethods с аргументом метода сигнатуры и типами возвращаемых значений, определенными в @RequestMapping.

Существует 7 семи HttpMessageConverter, и один из них - Jaxb2RootElementHttpMessageConverter.

Jaxb2RootElementHttpMessageConverter взят из пакета spring -web.

Начиная с версии Spring-Web 3.2.8 и далее Jaxb2RootElementHttpMessageConverter устанавливает для processExternalEntities значение false, которое, в свою очередь, устанавливает для свойства IS_SUPPORTING_EXTERNAL_ENTITIES XMLInputFactory значение false.

Ссылаться :

http://grepcode.com/file/repo1.maven.org/maven2/org.springframework/spring-web/3.2.8.RELEASE/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java?av=f

Ответ использовать
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.8.RELEASE</version> </dependency>

person Nishanth    schedule 09.02.2015
comment
ваша страница не открывается, это отображается. Эта страница не работает. это удалено? - person Hitesh; 05.11.2019