Portfolio personal con hardening de seguridad
En líneaLa web que estás leyendo. Hecha con Astro y Tailwind, desplegada en Cloudflare Pages con despliegue continuo desde GitHub, en inglés y en español.
La primera vez que la desplegué, securityheaders.com le puso una D: solo tenía Referrer-Policy y X-Content-Type-Options, y las dos las ponía Cloudflare automáticamente. Añadí las cabeceras que faltaban con un archivo _headers que Cloudflare Pages lee en cada despliegue —sin paneles ni clics— y ahora la web saca una A.
De qué protege cada cabecera
- Strict-Transport-Security: solo HTTPS, durante un año y también en los subdominios; bloquea los ataques de downgrade en la primera petición por HTTP.
- X-Frame-Options: DENY — nadie puede cargar la web dentro de un iframe, lo que corta el clickjacking.
- X-Content-Type-Options: nosniff — el navegador se fía del tipo de contenido declarado en lugar de adivinarlo.
- Permissions-Policy — cámara, micrófono, geolocalización, pagos y USB desactivados.
- Content-Security-Policy — scripts, estilos y conexiones limitados a la propia web y a una lista corta de excepciones.