blog webempresa

Cabecera X-Frame-Options, mejorar la seguridad Web

por | Abr 8, 2020 | Seguridad WordPress

Cabecera X-Frame-Options

La cabecera X-Frame-Options sirve para prevenir que la página pueda ser abierta en un frame, o iframe. De esta forma se pueden prevenir ataques de clickjacking sobre tu web.

Por ejemplo, si la web https://www.webempresa.com contiene la cabecera X-FRAME-OPTIONS con el valor Allow-From https://www.facebook.com, entonces la web https://www.webempresa.com, solo podrá ser “enmarcada” desde el dominio www.facebook.com.

Otra opción sería denegar siempre en enmarcado (DENY), o decirle que solo pueda ser enmarcada desde el mismo origen (SAME-ORIGIN).

Estos son los valores que acepta:

  • DENY
  • La página no podrá ser mostrada en un frame/iframe.

  • SAMEORIGIN
  • Solo podrá ser mostrada en un frame/iframe desde su propio dominio.

  • ALLOW-FROM uri
  • Solo podrá ser mostrada en un frame/iframe desde las url’s indicadas.

La mejor forma de añadir esta cabecera sería añadiendo unas líneas de código al archivos functions.php del tema de WordPress que estemos usando.

Este archivo se encuentra en la ruta wp-content/themes/NOMBRE_TEMA, en donde NOMBRE_TEMA es el nombre del tema que tenemos activado.

En primer lugar, haremos una copia de seguridad del archivo functions.php. Después lo editamos y añadimos el siguiente código al final del mismo:

add_action( 'send_headers', 'add_header_xframeoptions' );
function add_header_xframeoptions() {
header( 'X-Frame-Options: SAMEORIGIN' );
}

 

Existen otras maneras de poner añadir esta cabecera . Si tenemos Apache como servidor web pordemos usar el fichero .htaccess, agregando el código que se indica a continuación:

Header always append X-Frame-Options SAMEORIGIN

 

En caso de usar Nginx, habría que introducir el siguiente código en el fichero de configuración de Nginx:

add_header X-Frame-Options SAMEORIGIN;

 

Podéis encontrar más información técnico en Mozilla Developer Network.

Si queremos añadir otras cabeceras de seguridad a partir de cambios en el archivo functions.php, podemos hacerlo usando una única función, en lugar de añadir cada cabecera en una función distinta, aunque el funcionamiento sea similar.

En el siguiente código de ejemplo, que habría que colocar al final del archivo functions.php, se añaden las cabeceras X-Content-Type-Options, X-Frame-Options y X-XSS-Protection:

add_action( 'send_headers', 'add_header_seguridad' );
function add_header_seguridad() {
header( 'X-Content-Type-Options: nosniff' );
header( 'X-Frame-Options: SAMEORIGIN' );
header( 'X-XSS-Protection: 1;mode=block' );
}

 

¿Te ha resultado útil este artículo?

Promo hosting noviembre