EIVUS

Content Security Policy (CSP) en sitios alojados

Reduzca XSS e inyección con headers CSP; report-only y ajuste.

Volver al blog

Los headers CSP restringen qué fuentes pueden cargar script, estilo y otros recursos. Empiece en report-only para encontrar violaciones, luego aplique. Ajuste directivas para permitir CDNs e scripts inline legítimos. Use nonce o hash para scripts inline.

Qué hace el CSP

  • Directivas: default-src, script-src, style-src, img-src, etc. Cada una limita de dónde el navegador puede cargar ese tipo de recurso. Reduce XSS e inyección no autorizada.
  • Fuentes: Permita orígenes específicos, 'self', 'none' o 'unsafe-inline'/'unsafe-eval' (debilitan; evite cuando pueda).
  • Reporting: report-uri o report-to envían informes de violación. Use en report-only para ver qué se bloquearía antes de aplicar.

Report-only y luego aplicar

  • Report-only: Envíe Content-Security-Policy-Report-Only primero. Sin bloqueo; recibe informes. Corrija uso legítimo de terceros o inline (allowlist de CDNs, nonces).
  • Aplicar: Cuando las violaciones sean aceptables, use Content-Security-Policy. El navegador bloqueará violaciones. Mantenga report-uri para regresiones.
  • Scripts inline: Prefiera nonce o hash en lugar de 'unsafe-inline'. Nonce: el servidor genera un valor aleatorio por petición; la etiqueta script tiene nonce="…". Reduce superficie de XSS.

Ajuste

  • CDNs: Añada dominios del CDN a script-src, style-src, img-src según corresponda.
  • Frameworks: Algunos inyectan script/estilo inline. Use soporte nonce o hashes.
  • Rigor: CSP más estricto es más seguro pero puede romper widgets legacy. Equilibre y mejore con el tiempo.

Resumen

Los headers CSP restringen qué fuentes pueden cargar script, estilo y otros recursos. Empiece en report-only; ajuste directivas para CDNs e inline (nonce/hash); luego aplique. Reduce riesgo de XSS e inyección.

Clientes que confían en nosotros