Victor Catalán

Fortificación de cabeceras de seguridad en NGINX

May 06, 2016 | Victor Catalán | 1 Minute Read

En la seguridad de una web además de servir el contenido cifrado, las cabeceras que se envían en las peticiones tienen un papel muy importante, es por ello que hay que configurar correctamente el servidor para mitigar ataques por vulnerabilidades XSS, CSRF, Clickjacking..etc

A continuación detallo algunas de las cabeceras de seguridad más importantes así como las líneas de configuración necesarias para el servidor NGINX.

Content-Security-Policy

Es una cabecera que permite proteger tu sitio de ataques XSS. Se indica una lista blanca de sitios origen desde los que se permite cargar el contenido.

  add_header Content-Security-Policy "default-src 'self'";

X-Frame-Options

Es una cabecera que permite proteger tu sitio de ataques Clickjacking. Indica al navegador si las páginas de tu sitio pueden estar dentro de iframe o no.

  add_header X-Frame-Options "SAMEORIGIN" always; <br/>
    add_header X-Frame-Options "DENY"; 

X-Content-Type-Options

Esta cabecera fuerza al navegador a utilizar el tipo de contenido de los ficheros que tu sitio le indica.
  add_header X-Content-Type-Options "nosniff" always;

Strict-Transport-Security

Esta cabecera fuerza al navegador que tiene que usar el protocolo https.
  add_header Strict-Transport-Security "max-age=31557600; includeSubDomains";

X-Xss-Protection

Esta cabecera habilita el filtro anti-XSS de los navegadores
  add_header X-Xss-Protection "1";
El siguiente enlace a SecurityHeaders.io permite evaluar y ver el nivel de seguridad de las cabeceras configuradas en tu web. Con lo comentado anteriormente es sencillo protegerse de las vulnerabilidades más genéricas, y sacar "buena nota" como podeis ver en mi dominio.
Resultado A de la configuración de las cabeceras.

Saludos.