java - refused - x frame options nginx
¿Cómo deshabilitar el encabezado de respuesta ''X-Frame-Options'' en Spring Security? (6)
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 de maravilla.
¿Cómo puedo desactivar esto en el archivo xml de Spring Security?
¿Qué debo escribir entre las etiquetas
<http>
De forma predeterminada,
X-Frame-Options
está configurado como denegado, para evitar ataques de
clickjacking
.
Para anular esto, puede agregar lo siguiente en su configuración de seguridad de primavera
<http>
<headers>
<frame-options policy="SAMEORIGIN"/>
</headers>
</http>
Aquí hay opciones disponibles para la política
- DENY : es un valor predeterminado. Con esto, la página no se puede mostrar en un marco, independientemente del sitio que intente hacerlo.
- SAMEORIGIN : supongo que esto es lo que está buscando, para que la página se muestre (y se pueda) en un marco en el mismo origen que la página en sí
- PERMITIR DESDE : le permite especificar un origen, donde la página se puede mostrar en un marco.
Para más información mira here .
Y here para comprobar cómo puede configurar los encabezados utilizando configuraciones XML o Java.
Tenga en cuenta que es posible que también deba especificar la
strategy
adecuada, según las necesidades.
Lo más probable es que no desee desactivar este encabezado por completo, pero use
SAMEORIGIN
.
Si está utilizando Java Configs (
Spring Boot
) y desea permitir las opciones de X-Frame:
SAMEORIGIN
, entonces deberá usar lo siguiente.
Para versiones anteriores de Spring Security:
http
.headers()
.addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
Para versiones más nuevas como Spring Security 4.0.2 :
http
.headers()
.frameOptions()
.sameOrigin();
Si está utilizando Spring Boot, la forma más sencilla de deshabilitar los encabezados predeterminados de Spring Security es usar
security.headers.*
propiedades
security.headers.*
.
En particular, si desea deshabilitar el encabezado predeterminado de
X-Frame-Options
, simplemente agregue lo siguiente a su
application.properties
:
security.headers.frame=false
También hay propiedades
security.headers.cache
,
security.headers.content-type
,
security.headers.hsts
y
security.headers.xss
que puede usar.
Para obtener más información, eche un vistazo a
SecurityProperties
.
Si está utilizando configuraciones de Java en lugar de configuraciones de XML,
WebSecurityConfigurerAdapter.configure(HttpSecurity http)
en su
WebSecurityConfigurerAdapter.configure(HttpSecurity http)
:
http.headers().frameOptions().disable();
Si está utilizando la configuración Java de Spring Security, todos los encabezados de seguridad predeterminados se agregan de manera predeterminada. Se pueden desactivar 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()
...;
}
}
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>