¿Cómo implementar los ancestros de marcos CSP en Apache, Nginx y WordPress?
Proteja su sitio web del ataque de click-jacking implementando el encabezado CSP (Política de seguridad de contenido)
CSP es uno de los 10 principales encabezados seguros de OWASP y, a menudo, lo recomiendan los expertos en seguridad o las herramientas para implementarlo. Hay muchas opciones para crear la política para hacer cumplir la forma en que desea exponer sus recursos web.
Una de las directivas llamadas frame-ancestors
que se introdujeron en la versión 2 de CSP ofrece más flexibilidad en comparación con el Encabezado X-Frame-Options. frame-ancestors
funciona de la misma manera que X-Frame-Options para permitir o no permitir que los recursos se incrusten usando iframe, frame, object, incrustado y elemento de applet.
Creo que X-Frame-Options quedará obsoleto en un futuro próximo cuando CSP sea totalmente compatible con las principales b.rowsers. Mientras escribo, Antepasados de tramas de CSP funciona con todos los latestbrowsVersiones anteriores excepto IE.
No sé cuándo Microsoft permitirá el soporte en IE. Siempre puedes consultar la b.rowsmayor compatibilidad en ¿Puedo usar el sitio?.
Echemos un vistazo al siguiente procedimiento de implementación.
Apache HTTP
mod_headers
es el requisito previo para inyectar encabezados en Apache. Dependiendo del sistema operativo y la versión, pero si está utilizando Ubuntu y Apache 2.4 entonces puedes usar a2enmod headers
para que pueda.
root@geekflare:/etc/apache2# a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
systemctl restart apache2
root@geekflare:/etc/apache2# systemctl restart apache2
root@geekflare:/etc/apache2#
Nota: toda la configuración que puede hacer en httpd.conf
archivo o cualquier archivo de configuración efectivo que esté utilizando.
Negar todo
Similar a X-Frame-Options DENEGAR. Si no desea ningún sitio (incluido self) para incrustar y luego agregue lo siguiente.
Header set Content-Security-Policy "frame-ancestors 'none';"
Guarde el archivo y reinicie Apache HTTP para que surta efecto.
Intenté incrustar el sitio y, como puede ver, se estaba bloqueando.
Permitir desde self pero NIEGA los demás
Similar a X-Frame-Options SAMEORIGIN, puede agregar lo siguiente.
Header set Content-Security-Policy "frame-ancestors 'self';"
Permitir desde self y múltiples dominios
X-Frame-Options no tenía una opción para permitir desde múltiples dominios. Gracias a CSP, puede hacer lo siguiente.
Header set Content-Security-Policy "frame-ancestors 'self' 'geekflare.com' 'gf.dev' 'geekflare.dev';"
Lo anterior permitirá que el contenido sea incrustado desde self, geekflare.com, gf.dev, geekflare.desarrollo. Cambia estos dominios por los tuyos.
Nginx
El concepto y la directiva son los mismos que se explicaron anteriormente en la sección Apache HTTP, excepto por la forma en que agrega el encabezado. Los encabezados en Nginx deben agregarse debajo del server
bloque en un archivo de configuración correspondiente.
Negar todo
add_header Content-Security-Policy "frame-ancestors 'none';";
NEGAR todo pero no self
add_header Content-Security-Policy "frame-ancestors 'self';";
Permitir desde múltiples dominios
add_header Content-Security-Policy "frame-ancestors 'yoursite.com' 'example.com';";
El ejemplo anterior permitirá incrustar contenido en yoursite.com y example.come. Después de realizar cambios, no olvide reiniciar el servidor Nginx para probar la política.
WordPress
Depende de cómo esté alojando WordPress.
If self-alojado como una nube o VPS, entonces es posible que esté utilizando un servidor web como Apache o Nginx. Si es así, puede seguir lo mencionado anteriormente para implementarlo en un servidor web en lugar de WordPress. Sin embargo, si estás en alojamiento compartido o no tiene acceso para modificar servidores web, entonces puede leverenvejecer un complemento.
Para implementar CSP en WordPress, puede utilizar el Complemento Content Security Policy Pro.
Verificación
Una vez que haya terminado con la implementación, puede usar browser herramientas de desarrollo incorporadas o un herramienta de prueba de encabezados seguros.
Para Concluir
CSP es uno de los poderosos encabezados seguros parte superiorrevvulnerabilidades web. Espero que las instrucciones anteriores le orienten sobre cómo implementar frame-ancestros en Apache y Nginx.