У меня есть CKeditor на моем jsp, и всякий раз, когда я что-то загружаю, выскакивает следующая ошибка:
Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'.
Я попытался удалить Spring Security, и все работает как шарм. Как я могу отключить это в весеннем XML-файле безопасности? Что писать между <http>
тегами
Ответы:
По умолчанию
X-Frame-Options
установлено значение « Отклонено» , чтобы предотвратить атаки типа « кликджекинг» . Чтобы переопределить это, вы можете добавить в конфигурацию безопасности Spring следующее:<http> <headers> <frame-options policy="SAMEORIGIN"/> </headers> </http>
Вот доступные варианты политики
Для получения дополнительной информации смотрите здесь .
И здесь, чтобы проверить, как вы можете настроить заголовки с помощью конфигураций XML или Java.
Обратите внимание, что вам может потребоваться указать соответствующие
strategy
, исходя из потребностей.источник
http
иheaders
тегов?http.headers().frameOptions().sameOrigin();
Если вы используете конфигурации Java вместо конфигураций XML, поместите это в свой
WebSecurityConfigurerAdapter.configure(HttpSecurity http)
метод:источник
http.headers().frameOptions().sameOrigin();
Скорее всего, вы не хотите полностью отключать этот заголовок, а используйте
SAMEORIGIN
. Если вы используете Java Configs (Spring Boot
) и хотите разрешить X-Frame-Options :SAMEORIGIN
, вам необходимо использовать следующее.Для более старых версий Spring Security:
http .headers() .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
Для более новых версий, таких как Spring Security 4.0.2 :
источник
Если вы используете конфигурацию XML, вы можете использовать
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security"> <security:http> <security:headers> <security:frame-options disabled="true"></security:frame-options> </security:headers> </security:http> </beans>
источник
Если вы используете конфигурацию Java Spring Security, все заголовки безопасности по умолчанию добавляются по умолчанию. Их можно отключить, используя конфигурацию Java ниже:
@EnableWebSecurity @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .headers().disable() ...; } }
источник
Если вы используете Spring Boot, самый простой способ отключить заголовки Spring Security по умолчанию - использовать
security.headers.*
свойства. В частности, если вы хотите отключитьX-Frame-Options
заголовок по умолчанию, просто добавьте в свойapplication.properties
:security.headers.frame=false
Существует также
security.headers.cache
,security.headers.content-type
,security.headers.hsts
иsecurity.headers.xss
свойства , которые вы можете использовать. Для получения дополнительной информации взгляните наSecurityProperties
.источник