NoScript (oNoScript Security Suite) è unaestensionelibera eopen source per il browserFirefox e altri basati suMozilla. NoScript permette l'esecuzione discriptJavaScript,Java,Flash (obsoleto dal 31 dicembre 2020[1]),Silverlight e altri plugin solo da quei siti internet scelti dall'utente e inseriti in una appositaLista fidata; questo fa aumentare la protezione contro molti attacchi informatici che sfruttano script malevoli per infettare ilPC. È possibile permettere l'esecuzione completa di tutti gli script presenti su una determinata pagina, oppure consentirli temporaneamente mentre la si visita. Per gli script provenienti da domini di terze parti si può scegliere quali permettere e quali no selezionando il dominio di provenienza. NoScript fornisce anche una protezione anti-Cross-site scripting e anti-Clickjacking[2][3][4].
Per impostazione predefinita, NoScript blocca il contenuto web attivo (eseguibile), che può essere completamente o parzialmente sbloccato consentendo di elencare un sito o un dominio dal menu dellabarra degli strumenti dell'estensione o facendo clic su un'icona segnaposto.
Nella configurazione predefinita, il contenuto attivo è globalmente negato, sebbene l'utente possa capovolgerlo e utilizzare NoScript per bloccare specifici contenuti indesiderati. L'elenco delle autorizzazioni può essere permanente o temporaneo (fino alla chiusura del browser o alla revoca delle autorizzazioni). Il contenuto attivo può essere costituito daJavaScript, caratteri Web, codec multimediali,WebGL eFlash (obsoleto dal 31 dicembre 2020[1]). L'add-on offre anche contromisure specifiche contro gli exploit di sicurezza[5].
Poiché molti attacchi al browser Web richiedono contenuto attivo che il browser normalmente esegue senza dubbio, disabilitare tale contenuto per impostazione predefinita e utilizzarlo solo nella misura in cui è effettivamente necessario riduce le possibilità di sfruttamento della vulnerabilità. Inoltre, il mancato caricamento di questo contenuto consente di risparmiare una notevole larghezza di banda[6] e vanifica alcune forme di web tracking.
NoScript è utile anche per gli sviluppatori per vedere come funziona il loro sito con JavaScript disattivato. Può anche rimuovere molti elementi Web irritanti, come i messaggi pop-up in-page e alcunipaywall, che richiedono JavaScript per funzionare.
NoScript assume la forma di un'icona della barra degli strumenti o di un'icona della barra di stato in Firefox. Viene visualizzato su ognisito Web per indicare se NoScript ha bloccato, consentito o parzialmente consentito l'esecuzione di script sulla pagina Web visualizzata. Facendo clic o passando il mouse (dalla versione 2.0.3rc1[7]) il cursore del mouse sull'icona NoScript dà all'utente la possibilità di consentire o vietare l'elaborazione dello script.
L'interfaccia di NoScript, accessibile facendo clic con il pulsante destro del mouse sulla pagina Web o sulla casella NoScript distintiva nella parte inferiore della pagina (per impostazione predefinita), mostra l'URL degli script che sono bloccati, ma non fornisce alcun tipo di riferimento per verificare se un determinato script è sicuro da eseguire[8]. Con pagine web complesse, gli utenti possono trovarsi di fronte a ben più di una dozzina di URL criptici diversi e una pagina web non funzionante, con solo la possibilità di consentire lo script, bloccare lo script o consentirlo temporaneamente.
Il 14 novembre 2017, Giorgio Maone ha annunciato NoScript 10, che sarà "molto diverso" dalle versioni 5.x, e utilizzerà la tecnologia WebExtension, rendendolo compatibile con Firefox Quantum[9]. Il 20 novembre 2017, Maone ha rilasciato la versione 10.1.1 per Firefox 57 e versioni successive. NoScript è disponibile per Firefox per Android[10].
L'11 aprile 2007 NoScript 1.1.4.7 è stato rilasciato pubblicamente[11] introducendo la prima protezione lato client contro il cross-site scripting di tipo 0 e di tipo 1 (XSS) mai fornita in unbrowser web.
Ogni volta che un sito Web tenta di iniettare codice HTML o JavaScript all'interno di un sito diverso (una violazione della politica della stessa origine), NoScript filtra la richiesta dannosa, neutralizzandone il pericolosocarico utile (payload)[12].
Funzionalità simili sono state adottate anni dopo daMicrosoft Internet Explorer 8 e daGoogle Chrome.
L'Application Boundaries Enforcer (ABE) è un modulo NoScript integrato[13] pensato per rafforzare le protezioni orientate all'applicazione web già fornite da NoScript, fornendo un componente simile a un firewall in esecuzione all'interno del browser.
Questo "firewall" è specializzato nella definizione e protezione dei confini di ogni applicazione web sensibile rilevante per l'utente (es. Plug-in,webmail,online banking e così via), secondo policy definite direttamente dall'utente, lo sviluppatore web / amministratore o una terza parte fidata[14]. Nella sua configurazione predefinita, l'ABE di NoScript fornisce protezione contro CSRF e attacchi di rebinding DNS mirati alle risorse intranet, come router e applicazioni web sensibili[15].
La funzione ClearClick di NoScript, rilasciata l'8 ottobre 2008, impedisce agli utenti di fare clic su elementi di pagina invisibili o "corretti" di documenti o applet incorporati, annullando tutti i tipi diclickjacking (ad esempio, da frame e plug-in[16]).
Questo rende NoScript "l'unico prodotto disponibile gratuitamente che offre un ragionevole grado di protezione" contro gli attacchi diclickjacking[17].
NoScript può forzare il browser a utilizzare sempre HTTPS quando stabilisce connessioni ad alcuni siti sensibili, al fine di prevenire attacchiman-in-the-middle. Questo comportamento può essere attivato dai siti Web stessi, inviando l'intestazione Strict Transport Security o configurato dagli utenti per quei siti Web che non supportano ancora Strict Transport Security[18].
Le funzionalità di miglioramento HTTPS di NoScript sono state utilizzate dalla Electronic Frontier Foundation come base del suo componente aggiuntivoHTTPS Everywhere[19].
Nel maggio 2009 è stato riferito che una "guerra di estensione" era scoppiata tra lo sviluppatore di NoScript, Giorgio Maone, e gli sviluppatori dell'estensione di blocco degli annunci per FirefoxAdblock Plus dopo che Maone aveva rilasciato una versione di NoScript che aggirava un blocco abilitato da un filtro AdBlock Plus[25][26]. Il codice che implementa questa soluzione alternativa è stato "camuffato"[25] per evitare il rilevamento. Maone ha dichiarato di averlo implementato in risposta a un filtro che ha bloccato il suo sito web. Dopo le crescenti critiche e una dichiarazione da parte degli amministratori del sito Mozilla Add-ons secondo cui il sito avrebbe cambiato le sue linee guida riguardo alle modifiche dei componenti aggiuntivi[27], Maone ha rimosso il codice e ha rilasciato scuse ufficiali[25][28].
Immediatamente dopo l'incidente di Adblock Plus[29], è sorto un battibecco tra Maone e gli sviluppatori del componente aggiuntivo Ghostery dopo che Maone ha implementato una modifica sul suo sito Web che ha disabilitato la notifica utilizzata da Ghostery per segnalare il software di tracciamento web[30]. Questo è stato interpretato come un tentativo di "impedire a Ghostery di riferire su tracker e reti pubblicitarie sui siti web di NoScript". In risposta, Maone ha dichiarato che la modifica è stata apportata perché la notifica di Ghostery ha oscurato il pulsante di donazione sul sito NoScript[31]. Questo conflitto è stato risolto quando Maone ha modificato ilCSS del suo sito per spostare, anziché disabilitare, la notifica di Ghostery[32].
Altri progetti