Estaba auditando los headers de seguridad de este sitio y me di cuenta de que mi `script-src` tenía `'unsafe-inline'`. Esa directiva hace inútil casi toda la protección contra XSS — cualquier script inline se ejecuta, incluidos los que un atacante inyectó. El problema: Astro genera scripts inline por todos lados y no quería agregar middleware solo para manejar nonces. Los hashes resultaron ser el enfoque correcto para un sitio mayormente estático. Pero llegar ahí no fue camino recto. Este post cubre la implementación completa *y* cada error que cometí en producción. ## Qué inlinea Astro y por qué es molesto Astro genera varios tipos de tags `