Encabezado de seguridad
Lectura de aproximadamente 5 minutos
Última actualización: 2026-04-03
Qué son los encabezados de seguridad
Los encabezados de seguridad (Security Headers) son encabezados que el servidor web añade a la respuesta HTTP para instruir al navegador sobre el comportamiento de seguridad. Al configurarlos adecuadamente, se pueden reducir ataques como XSS, clickjacking y MIME sniffing.
Los encabezados de seguridad se pueden implementar con la configuración del servidor y, en algunos casos, sin cambiar el código de la aplicación. Son una defensa de una capa distinta al cifrado de las comunicaciones que proporciona HTTPS.
Principales encabezados de seguridad
- Content-Security-Policy (CSP): Restringe las fuentes de recursos (scripts, estilos, imágenes, fuentes, etc.) que se pueden cargar en la página. Al prohibir la ejecución de scripts en línea, se pueden mitigar los ataques XSS. La configuración es compleja y requiere pruebas cuidadosas para la implementación en sitios existentes.
- Strict-Transport-Security (HSTS): Instruye al navegador a realizar siempre los accesos posteriores por HTTPS. Reduce el riesgo de ataques de intermediario dirigidos a la redirección de HTTP a HTTPS (no cubre el primer acceso, antes de recibir HSTS). Un ejemplo de configuración es
max-age=31536000; includeSubDomains. - X-Content-Type-Options: Al configurar
nosniff, se previene que el navegador ignore el Content-Type y adivine el tipo de archivo (MIME sniffing). La configuración es de una sola línea. Antes de activarlo, compruebe que los scripts y las hojas de estilo se sirven con el Content-Type correcto. - X-Frame-Options: Restringe que la página se incruste dentro de un
<iframe>, previniendo ataques de clickjacking. Se configuraDENY(rechazo total) oSAMEORIGIN(solo permitir el mismo origen). Se puede sustituir por la directivaframe-ancestorsde CSP. - Referrer-Policy: Controla la información de referencia enviada al hacer clic en un enlace a otro sitio. Con
strict-origin-when-cross-origin, a otros orígenes solo se envía el origen. Si la URL contiene IDs de sesión o tokens, reduce el riesgo de filtración a través del referrer. - Permissions-Policy: Controla el acceso a APIs del navegador como cámara, micrófono, ubicación y sensor de aceleración. Al desactivar explícitamente las funciones no utilizadas, se reduce la superficie de ataque.
Métodos de configuración de los encabezados de seguridad
Los encabezados de seguridad se añaden en la configuración del servidor web o proxy inverso.
Ejemplo de configuración en Nginx
add_header X-Content-Type-Options "nosniff" always;add_header X-Frame-Options "DENY" always;add_header Referrer-Policy "strict-origin-when-cross-origin" always;
Configuración en CloudFront
En AWS CloudFront se pueden configurar los encabezados de seguridad de forma masiva utilizando políticas de encabezados de respuesta. Al aplicar la política gestionada "SecurityHeadersPolicy" se añaden HSTS, X-Content-Type-Options, X-Frame-Options y Referrer-Policy, entre otros. CSP no está incluido en esta política y se configura por separado (según la documentación de AWS, octubre de 2026).
Verificación de la configuración
Después de la configuración, verifique con los siguientes métodos.
- securityheaders.com: Herramienta gratuita que puntúa la configuración de los encabezados de seguridad de A+ a F con solo introducir la URL.
- Herramientas de desarrollo del navegador: Verificar directamente los encabezados de respuesta en la pestaña Network.
- Comando curl: Obtener los encabezados de respuesta con
curl -I https://example.com.
Consideraciones para la implementación y orden de prioridad
No es necesario implementar todos los encabezados a la vez. Se recomienda implementarlos gradualmente en el siguiente orden de prioridad.
- Implementar inmediatamente (pocos efectos secundarios): X-Content-Type-Options, X-Frame-Options, Referrer-Policy
- Implementar pronto (requiere HTTPS): HSTS (primero probar con un max-age corto y extender si no hay problemas)
- Implementar con cuidado (requiere pruebas): CSP (primero verificar el impacto en modo Report-Only antes de aplicar)
CSP ayuda a mitigar el XSS, pero también conlleva el riesgo de romper la funcionalidad del sitio por errores de configuración. Utilizando el encabezado Content-Security-Policy-Report-Only, se pueden recopilar solo informes de violaciones sin bloquear realmente, lo que es útil para pruebas antes de la aplicación en producción.
Los encabezados CORS controlan el intercambio de recursos entre orígenes y tienen un propósito diferente al de los encabezados de seguridad, orientados a la defensa contra ataques.
Para obtener más información sobre este tema, consulte Encabezados de seguridad HTTP - 5 encabezados esenciales para proteger tu sitio web.
Conceptos erróneos comunes
- Si uso HTTPS, los encabezados de seguridad no son necesarios
- HTTPS proporciona cifrado de la vía de comunicación, pero no puede prevenir ataques de capa de aplicación como XSS o clickjacking. Los encabezados de seguridad son una defensa de una capa diferente a HTTPS, y es necesario usarlos en combinación.
- Si configuro los encabezados de seguridad, la visualización se rompe
- X-Content-Type-Options bloquea los scripts y las hojas de estilo cuyo Content-Type no coincide, y X-Frame-Options restringe la incrustación de la página en otros sitios. Lo que puede afectar la visualización es principalmente CSP, pero el modo Report-Only permite comprobar su impacto antes de aplicarlo.