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-urioreport-toenví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-Onlyprimero. 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 tienenonce="…". Reduce superficie de XSS.
Ajuste
- CDNs: Añada dominios del CDN a
script-src,style-src,img-srcsegú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.




