Come garantire che la CDN di terze parti sia sicura (e sia al sicuro)?

-3

La maggior parte delle applicazioni moderne utilizza la CDN per le librerie di terze parti. Ad esempio, supponiamo che io utilizzi xxxv2.min.js da cdn.example.com/xxxv2.min.js Tutto è buono, fino al giorno in cui la società è stata compromessa e il loro file min.js è stato violato e inserito una sorta di script per ottenere tutti i cookie dell'utente come XSS.

Per non lasciare la sicurezza della mia applicazione sulla mano di qualcun altro (anche se sono aziende giganti, di sicuro sono anche più bersagliati di me per quei cattivi!), posso usare xxxv2.min.js localmente ma il trade off è spettacolo qui.

Possiamo creare una sorta di logica che in pratica utilizza ancora il CDN ma lo confronta con la versione locale di esso con una sorta di checksum o confronto di byte? O è semplicemente eccessivo? Qual è il modo migliore di utilizzare la CDN in modo sicuro, senza fare affidamento sui protocolli di sicurezza del fornitore?

    
posta curiousBoy 24.04.2018 - 23:34
fonte

1 risposta

7

Le misure di sicurezza che stai pensando esistono già. Dai un'occhiata a questo esempio dalla pagina CDN di jQuery :

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

La parte notevole è integrity="sha256-..." , che un browser deve controllare rispetto allo script per garantire che l'hash del contenuto abbia lo stesso valore.

Questa difesa è sufficiente per mitigare le tue preoccupazioni, in quanto un utente malintenzionato non può modificare lo script CDN senza che venga rilevato. Cioè, a meno che non ti fidi del sito web e lo sha256 stesso sia stato inserito da un utente malintenzionato.

    
risposta data 24.04.2018 - 23:43
fonte

Leggi altre domande sui tag