sameorigin - X-Frame-Options y Content-Security-Policy para frames en Firefox
x-frame-options php (1)
La especificación de la política de seguridad
La directiva frame-ancestros obsoleto el encabezado X-Frame-Options. Si un recurso tiene ambas políticas, DEBERÍA aplicarse la política de ancestros de trama y DEBERÍA ignorarse la política de opciones X-Frame-Options.
Por lo tanto, desde mi comprensión, si los Content-Security-Policy
y X-Frame-Options
están presentes, entonces X-Frame-Options
debe ignorarse.
Tengo una aplicación web con ambos encabezados, y parece que Firefox 38 ignora el Content-Security-Policy
y usa el encabezado X-Frame-Options
lugar.
Mis encabezados de muestra son:
Content-Security-Policy:frame-ancestors ''self'' local.com *.local.com
X-Frame-Options:Allow-From http://local.com
Quiero que se acceda a mi marco desde local.com y todos los subdominios. Local.com es solo un ejemplo. Si el encabezado X-Frame-Options
está presente, entonces solo permite http://local.com , pero si lo elimino, entonces Firefox usa el Content-Security-Policy
y funciona bien para el dominio y los subdominios.
¿Significa que Firefox no está implementando esta parte? ¿O simplemente es una especificación demasiado nueva y Firefox aún no la implementa? ¿Hay alguna otra forma de forzar el uso del encabezado Content-Security-Policy
?
Sé que Chrome funciona bien con Content-Security-Policy
e IE puede funcionar solo con X-Frame-Options
, pero parece que no puedo combinar ambos encabezados, ya que Firefox no funciona correctamente.
Una posible forma es enviar X-Frame-Options
solo para IE, y Content-Security-Policy
para todos los demás, pero ¿hay una mejor manera?
¡Gracias!
frame-ancestors
solo aparecieron en el nivel 2 de CSP (ver el registro de cambios ) por lo que es muy probable que Firefox 38 simplemente no lo haya implementado aún.
Puede verificarlo fácilmente viendo la consola JavaScript: el navegador mostrará advertencias sobre cada una de las directivas CSP que no comprende.
También puedes descargar Firefox desde el canal beta y ver si hace la diferencia, pero obviamente no será de mucha ayuda si solo quieres construir una solución interoperable para el sitio web de producción ...