https://csp-evaluator.withgoogle.com/ muestra el sitio clásico de ASP.net en el que estoy trabajando con los siguientes resultados:
object-src 'none'; img-src 'self'; script-src 'self'; require-trusted-types-for 'script'
pero parece que ninguno de mis códigos que usa __DoPostback JS está funcionando. Aquí hay un fragmento de web.config:
<rule name="CSP"> <match serverVariable="RESPONSE_Content-Security-Policy" pattern=".*" /> <action type="Rewrite" value="object-src 'none'; img-src 'self'; script-src 'self'; require-trusted-types-for 'script'" /> </rule>
Eliminar las estrofas require-trusted-types-for y script-src hace que el JS vuelva a funcionar, pero también hace que el sitio sea vulnerable a XSS.
¿Alguien sabe de una solución? Probé script-src url-of-base-site'`
Este parecía prometedor pero puede ser lo suficientemente antiguo como para require-trusted-types-for 'script'; no era una cosa todavía? Cuando comenté esa última etiqueta de los encabezados personalizados, parece que los scripts en línea comienzan a funcionar; pero en el mejor de los casos obtengo una B- en observatory.mozilla.org
Al configurar "script-src 'self'", todos los scripts en ejecución deben cargarse en archivos .js desde la misma fuente. Su sitio no es particularmente vulnerable a XSS con un script-src tan fuerte.
Si algún código de terceros causa problemas con CSP, básicamente debe modificarlo o reemplazarlo si lo desea si no desea cambiar el CSP. En su caso, estaría contento con "script-src 'self'" y preferiría invertir tiempo en asegurar otra cosa, aunque un evaluador de CSP diga que mi política no es óptima.