Tutto questo vale la pena di considerare, ma per essere onesti, ci sono pratiche di sviluppo ben accettate e protezioni integrate nei browser moderni che proteggono dai casi più gravi rilevati.
Vale anche la pena notare che ci sono tre modi in cui il codice di terze parti può essere eseguito nel contesto (ovvero, condividendo lo stesso DOM del browser) delle tue pagine web: 1) JS che includi e esegui il rendering insieme alla tua pagina, per esempio Google Analytics o 2) Bookmarklets che l'utente controlla (ad esempio Spritzlet o Pinterest) e 3) estensioni o barre degli strumenti del browser. Questi ultimi due sono quasi completamente fuori dal tuo controllo; il primo è qualcosa che puoi controllare in una certa misura.
Di gran lunga la cosa più importante da garantire è che i server web che controlli e che rispondono al client (browser, bot, malware) sono bloccati. XSS, CSRF, SQL Injection e molti altri vettori di attacco sono sotto il tuo controllo sul lato server. Dovresti esplicitamente consentire CORS sul tuo server, ma se lo fai, assicurati di sapere cosa stai facendo e sii particolarmente vigile. Questo non vuol dire che questa roba sia tutto facile o ovvio o altro, ma è del tutto indipendente dal fatto che la vulnerabilità venga violato tramite JS o qualsiasi altro metodo.
Supponendo di aver protetto il tuo server web e bloccato gli endpoint che possono essere chiamati, il resto di ciò che va storto rientra in una classe diversa. JS (e plugin / estensioni / barre degli strumenti / bookmarklets) può fare una vasta gamma di cose cattive: i logger di battitura, l'iniezione di elementi dall'aspetto innocuo che in realtà inviano dati altrove, e così via. Tutti questi sono eseguiti dal browser.
Se stai servendo il JS per conto di terzi, devi fare attenzione a fidarti e verificare la fonte. Uno snippet di Google Analytics è probabilmente sicuro. Un widget di pubblicazione di annunci di terze parti potrebbe valere la pena di esaminare più attentamente. In tutti i casi, è possibile ispezionare il codice sottostante: se il browser può eseguirlo, è possibile vedere il codice JS e decidere: è questo qualcosa che si desidera sul tuo sito?
JavaScript è uno strumento potente. Ma alla fine, JS è un software che il browser esegue e quindi confidiamo molto nei browser e nei sistemi operativi che li eseguono per garantire la sicurezza. JS non è un software che ha particolari abilità magiche per violare il tuo server o fare fare al tuo server cose che non è stato progettato per fare.
Non c'è poco o nulla che il tuo sito possa fare che permetta a JS di eseguire arbitrariamente codice su un computer dell'utente - è l'utente che deve avere aggiornamenti recenti a browser e sistema operativo, ecc. Puoi rilevare vecchie versioni e postare avvisi sii un bravo ragazzo, ma questo è tutto.
Proteggi il tuo server, installa gli aggiornamenti, assicurati che il tuo codice sia sicuro, evita di servire JS da terze parti sconosciute. Quindi, assicurati che il tuo sito sia registrato con Strumenti per i Webmaster di Google che ti informerà se il tuo sito è compromesso in molti casi e, se te lo puoi permettere, ottieni un servizio che analizza il tuo sito per individuare eventuali vulnerabilità.