JavaScript è "relativamente sicuro", ma non "assolutamente sicuro". Qualsiasi codice eseguito sul tuo sistema potrebbe essere pericoloso. Non esiste un sistema perfettamente sicuro, tranne quello che non ha mai usato. JavaScript è più sicuro di un dispositivo USB sconosciuto nel tuo computer e più sicuro di un file binario scaricato da un sito Web ombreggiato o di un allegato di e-mail sospetto, e molto più sicuro di alcuni degli script che troverai sui siti web che ti dicono di copia e incolla nella tua shell.
Ha funzioni di sicurezza: una sandbox per isolare il processo, un'API relativamente limitata che ha vincoli di sicurezza per evitare l'esecuzione di istruzioni arbitrarie del computer e controlli di sicurezza intesi a limitare l'esposizione di dati sensibili come impronte digitali o condivisione di dati tra domini . Questi sono in cima ai controlli del sistema operativo applicati al binario del browser per limitare il comportamento scorretto e alle applicazioni anti-virus che possono aiutare a fermare tali attacchi.
Tuttavia, non è assolutamente sicuro. I bug nel motore di runtime del browser, il browser stesso, l'antivirus o persino il processore stesso possono compromettere la sicurezza di JavaScript. Il sistema è sicuro solo quanto la sua sicurezza più debole. La sicurezza di JavaScript è principalmente intesa a prevenire exploit "casuali" (come ad esempio un 8 anni di apprendimento di JavaScript per la prima volta e la scrittura accidentale di un exploit), ma non ha alcuna possibilità contro attaccanti dedicati. JavaScript è abbastanza complicato da renderli bug, forse in modi strani e inaspettati.
Quelli con esperienza nell'hacking, nella verifica delle penne e nella sicurezza possono, e lo fanno, sfogliare il codice sorgente, eseguire il debug degli eseguibili e fare qualsiasi altra cosa per provare e trovare chinks nell'armatura. I punti deboli dell'implementazione di JavaScript. E JavaScript è abbastanza grande da poter esistere prima, dal momento che è virtualmente impossibile persino automatizzare tutti i possibili test che troverebbero questi bug.
In generale, qualsiasi tipico script che potresti eseguire su un sito web tipico è probabilmente "sicuro", specialmente quelli collegati ai principali motori di ricerca. Tuttavia, una volta che si inizia a scendere dai sentieri battuti, è incredibilmente probabile che il sistema venga compromesso ad un certo punto se c'è anche un singolo punto debole. Ci vuole solo un ottimo exploit, o qualche volta due o tre in tandem, per occupare completamente un sistema.
Così com'è, abilita JavaScript solo per i siti di cui ti fidi (io personalmente uso NoScript per questo scopo), tieni sempre aggiornato tutto il tuo software e presta sempre attenzione agli avvisi del browser come certificati non validi e così via. Anche così, non sarai sicuro al 100%, ma parteciperai attivamente alla tua strategia di mitigazione.