¿Cómo garantizar que la CDN de terceros sea segura (y se mantenga segura)?

-3

La mayoría de las aplicaciones modernas utilizan CDN para bibliotecas de terceros. Por ejemplo, digamos que uso xxxv2.min.js de cdn.example.com/xxxv2.min.js Todo está bien, hasta el día en que la compañía fue pirateada y su archivo min.js fue secuestrado e inyectado algún tipo de script para obtener todas las cookies de usuario, como XSS.

Para no dejar la seguridad de mi aplicación en manos de otra persona (aunque sean compañías gigantes, ¡seguro que también son un objetivo más grande que yo para esos tipos malos!), puedo usar xxxv2.min.js localmente, pero la compensación Es el rendimiento aquí.

¿Podemos crear algún tipo de lógica que básicamente aún use el CDN pero lo compare con la versión local del mismo con algún tipo de comparación de suma de comprobación o byte? ¿O es simplemente una exageración? ¿Cuál es la mejor manera de usar CDN de forma segura, sin confiar en los protocolos de seguridad del proveedor?

    
pregunta curiousBoy 24.04.2018 - 23:34
fuente

1 respuesta

7

Las medidas de seguridad que estás pensando ya existen. Eche un vistazo a este ejemplo en la página CDN de jQuery :

<script src="http://code.jquery.com/jquery-3.3.1.min.js"integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

La parte notable es el integrity="sha256-..." , que un navegador debe verificar con la secuencia de comandos para garantizar que el contenido se cache al mismo valor.

Esta defensa es suficiente para mitigar sus inquietudes, ya que un atacante no puede modificar el script CDN sin que se detecte. Es decir, a menos que no confíe en el sitio web y el sha256 haya sido colocado por un atacante.

    
respondido por el multithr3at3d 24.04.2018 - 23:43
fuente

Lea otras preguntas en las etiquetas