Tengo CKeditor en mi jsp y cada vez que subo algo, aparece el siguiente error:
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'.
He intentado eliminar Spring Security y todo funciona a la perfección. ¿Cómo puedo deshabilitar esto en el archivo xml de seguridad de primavera? ¿Qué debo escribir entre <http>
etiquetas?
Respuestas:
De forma predeterminada,
X-Frame-Options
está establecido en denegado, para evitar ataques de secuestro de clics . Para anular esto, puede agregar lo siguiente en su configuración de seguridad de primavera<http> <headers> <frame-options policy="SAMEORIGIN"/> </headers> </http>
Aquí están las opciones disponibles para la política
Para obtener más información, eche un vistazo aquí .
Y aquí para comprobar cómo puede configurar los encabezados utilizando configuraciones XML o Java.
Tenga en cuenta que es posible que también deba especificar lo apropiado
strategy
, según las necesidades.fuente
http
yheaders
?http.headers().frameOptions().sameOrigin();
Si está utilizando configuraciones de Java en lugar de configuraciones XML, coloque esto en su
WebSecurityConfigurerAdapter.configure(HttpSecurity http)
método:fuente
http.headers().frameOptions().sameOrigin();
Lo más probable es que no desee desactivar este encabezado por completo, pero use
SAMEORIGIN
. Si está utilizando Java Configs (Spring Boot
) y le gustaría permitir X-Frame-Options :SAMEORIGIN
, entonces necesitaría usar lo siguiente.Para versiones anteriores de Spring Security:
http .headers() .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
Para versiones más recientes como Spring Security 4.0.2 :
fuente
Si usa la configuración XML, puede usar
<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>
fuente
Si está utilizando la configuración de Java de Spring Security, todos los encabezados de seguridad predeterminados se agregan de forma predeterminada. Se pueden deshabilitar utilizando la configuración de Java a continuación:
@EnableWebSecurity @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .headers().disable() ...; } }
fuente
Si está usando Spring Boot, la forma más sencilla de deshabilitar los encabezados predeterminados de Spring Security es usar
security.headers.*
propiedades. En particular, si desea deshabilitar elX-Frame-Options
encabezado predeterminado, simplemente agregue lo siguiente a suapplication.properties
:security.headers.frame=false
También hay
security.headers.cache
,security.headers.content-type
,security.headers.hsts
ysecurity.headers.xss
propiedades que se pueden utilizar. Para obtener más información, consulteSecurityProperties
.fuente