Usar cabeceras de seguridad HTTP puede mejorar la seguridad de tu web o aplicación y protegerla frente al clickjacking, el cross-site scripting (XSS) y otros ataques comunes.
Las cabeceras HTTP permiten que el cliente y el servidor intercambien información adicional en una petición o respuesta HTTP, lo que puede influir en su comportamiento final. Las cabeceras de seguridad son el subconjunto que tiene un efecto positivo específico en la seguridad de la web o aplicación.

Cómo añadir cabeceras de seguridad HTTP a una web
Puedes usar la herramienta Security Headers para añadir cabeceras de seguridad fácilmente:
- Entra en tu panel de control (Stack HC) y abre el plan de hosting de la web a la que quieres añadir las cabeceras.
- En la sección CDN, selecciona el icono Security Headers.
Hay varias cabeceras de seguridad principales que puedes configurar. Más abajo encontrarás los detalles de cada una.
Perfiles de cabeceras de seguridad
Puedes guardar y cargar tu configuración de cabeceras de seguridad HTTP mediante perfiles con nombre.
Crear un perfil
Configura las cabeceras de seguridad HTTP que mejor se adapten a tus necesidades. Cuando las tengas ajustadas, guárdalas como un perfil con nombre. Ponle un nombre descriptivo para identificar fácilmente para qué sirve.

Cargar un perfil
Para aplicar rápidamente un conjunto de cabeceras a tu plan, selecciona el perfil en la lista. Las cabeceras asociadas a ese perfil se cargarán al instante.

Cabeceras de seguridad HTTP más relevantes y cómo usarlas
Estas son las cabeceras principales, qué hace cada una y en qué caso conviene usarla:
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- Strict-Transport-Security
- X-XSS-Protection
- Content-Security-Policy
X-Frame-Options
Indica si se permite al navegador mostrar una página dentro de etiquetas iframe u object. Las webs pueden usarla para evitar el clickjacking, asegurando que su contenido no se incruste en otros sitios.
Nota: la protección adicional solo funciona si el usuario usa un navegador compatible con X-Frame-Options.
Tiene dos opciones:
- DENY: la página no puede mostrarse en un marco (frame), sin importar qué sitio lo intente.
- SAMEORIGIN: la página solo puede mostrarse en un marco del mismo origen que la propia página.
Más información: documentación de X-Frame-Options en MDN.
X-Content-Type-Options
Es un marcador que usa el servidor para indicar que los tipos MIME de las cabeceras Content-Type no deben cambiarse. Es una forma de desactivar el MIME type sniffing o de indicar que los tipos MIME se configuraron deliberadamente.
Solo tiene una opción, nosniff, que bloquea las peticiones cuando el destino es de tipo estilo y el tipo MIME no es text/css, o es de tipo script y el tipo MIME no es de JavaScript.
Más información: documentación de X-Content-Type-Options en MDN.
Referrer-Policy
Controla cuánta información de referencia, enviada en la cabecera Referer, se incluye en las peticiones. Estas son las opciones:
- no-referrer: se omite por completo la cabecera Referer. No se envía información de referencia.
- no-referrer-when-downgrade: envía origen, ruta y cadena de consulta cuando el nivel de seguridad del protocolo se mantiene o mejora (HTTP a HTTP, HTTP a HTTPS y HTTPS a HTTPS), pero no de HTTPS a HTTP ni de HTTPS a archivo.
- origin: envía solo el origen en la cabecera Referer.
- origin-when-cross-origin: envía origen, ruta y cadena de consulta en peticiones del mismo origen con el mismo nivel de protocolo. Para peticiones a otros orígenes y a destinos menos seguros, envía solo el origen.
- same-origin: envía origen, ruta y cadena de consulta en peticiones del mismo origen. No envía la cabecera Referer en peticiones a otros orígenes.
- strict-origin: envía solo el origen cuando el nivel de seguridad del protocolo se mantiene (HTTPS a HTTPS). No envía Referer a destinos menos seguros (HTTPS a HTTP).
- strict-origin-when-cross-origin: es la opción por defecto. Envía origen, ruta y cadena de consulta en peticiones del mismo origen. En peticiones a otros orígenes envía solo el origen cuando el nivel de seguridad se mantiene (HTTPS a HTTPS), y no envía Referer a destinos menos seguros (HTTPS a HTTP).
- unsafe-url: envía origen, ruta y cadena de consulta en cualquier petición, sin importar la seguridad.
Nota: la opción
unsafe-urlpuede filtrar información potencialmente privada de las URL de recursos HTTPS hacia orígenes inseguros. Valora con cuidado su impacto; en la mayoría de los casos es mejor mantener la opción por defecto.
Más información y ejemplos: documentación de Referrer-Policy en MDN.
Strict-Transport-Security
Esta cabecera (abreviada HSTS) permite que una web indique a los navegadores que solo debe accederse a ella mediante HTTPS y no por HTTP. Opciones disponibles:
- max-age=: el tiempo, en segundos, que el navegador debe recordar que solo puede acceder por HTTPS.
- includeSubDomains: parámetro opcional; si se aplica, la regla se extiende a todos los subdominios del sitio.
Más información: documentación de Strict-Transport-Security en MDN.
X-XSS-Protection
Es una función de Internet Explorer, Chrome y Safari que impide que se carguen páginas cuando detectan ataques de cross-site scripting (XSS) reflejado. Aunque estas protecciones son en gran parte innecesarias en navegadores modernos con webs que tienen una Content-Security-Policy sólida que desactiva el JavaScript en línea ('unsafe-inline'), aún pueden proteger a usuarios de navegadores antiguos que no admiten Content-Security-Policy.
- 0: desactiva el filtro XSS.
- 1: activa el filtro XSS. Si se detecta un ataque, el navegador sanea la página.
- 1; mode=block: activa el filtro XSS. En lugar de sanear la página, el navegador impide mostrarla si detecta un ataque.
- 1; report= (solo Chromium): activa el filtro XSS. Si se detecta un ataque, el navegador sanea la página y notifica la infracción, usando la funcionalidad de la directiva
report-uride CSP.
Más información: documentación de X-XSS-Protection en MDN.
Content-Security-Policy
Esta cabecera de respuesta HTTP permite a los administradores de una web controlar qué recursos puede cargar el navegador en una página determinada. Salvo algunas excepciones, las políticas consisten en indicar orígenes de servidor y puntos de acceso de scripts. Ayuda a protegerse de ataques de cross-site scripting.
Lista completa de directivas y opciones: documentación de Content-Security-Policy en MDN.