Ha habido un largo debate sobre el modelado CSP, tengo una aplicación web y uso JQuery, para eso uso el sitio principal de JQuery http://code.jquery.com/jquery-x.yy.z.min.js
para alojarlo en mi sitio para funcionar, sé que los CDN pueden ser útil en casos como este, también podría poner esto en mis etiquetas de script https://ajax.googleapis.com/ajax/libs/jquery/x.yy.z/jquery.min.js
para trabajar el mismo proceso. En cuanto al tiempo de carga, Google alojó JQuery es más rápido que code.jquery.com
.
Ahora, digamos que uso la segunda parte, es decir, ajax.googleapis.com, para alojar mi sitio JQuery en mi sitio web. Ahora, para colocar el Mecanismo de Defensa en profundidad para evitar que XSS use encabezados CSP (Contenido-Seguridad-Política), ahora lo primero que hago es en la Lista Blanca por script-src 'self' ajax.googleapis.com
. Ahora, digamos que tengo una parte en mi sitio web donde la entrada se refleja sin filtrado, lo que puede causar XSS. Ahora, las secuencias de comandos en línea como <script>alert(/xss/)</script>
se bloquearían y me proporcionarían protección. Pero luego hay un Negativo, ya que he incluido en la lista blanca el ajax.googleapis.com, cualquier atacante puede usar Angular JS 1.1.3 desde el mismo y causar XSS como
"><script src="//ajax.googleapis.com/ajax/libs/angularjs/1.1.3/angular.min.js"></script><div ng-app ng-csp id=p ng-click=$event.view.alert(1337)><script async src=//ajax.googleapis.com/jsapi?callback=p.click></script>
Esto provocará un ataque XSS, ahora el punto es ¿Cómo podría modificar mi regla de CSP para que bloquee todos los demás puntos finales del sitio de la lista blanca que tengo? O si no es posible de lo que supongo que el API de Google CDN es seguramente no es una mejor opción que code.jquery.com
. ¿Alguna explicación sobre cómo hacer ejercicio?
Porque incluso si uso code.jquery.com
y la lista blanca, entonces Attacker puede usar una versión anterior de Jquery del mismo CDN y puede hacer un mal uso de la vulnerabilidad para causar XSS. Entonces, ¿cuál es la apuesta más segura que puedo hacer aquí? Explicar