diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/it/javascript-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/it/javascript-trap.html | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/it/javascript-trap.html b/talermerchantdemos/blog/articles/it/javascript-trap.html new file mode 100644 index 0000000..be75529 --- /dev/null +++ b/talermerchantdemos/blog/articles/it/javascript-trap.html @@ -0,0 +1,304 @@ +<!--#set var="PO_FILE" + value='<a href="/philosophy/po/javascript-trap.it.po"> + https://www.gnu.org/philosophy/po/javascript-trap.it.po</a>' + --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html" + --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.it-diff.html" + --><!--#set var="OUTDATED_SINCE" value="2019-02-21" --> + +<!--#include virtual="/server/header.it.html" --> +<!-- Parent-Version: 1.86 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>La trappola JavaScript</title> + +<!--#include virtual="/philosophy/po/javascript-trap.translist" --> +<!--#include virtual="/server/banner.it.html" --> +<!--#include virtual="/server/outdated.it.html" --> +<h2>La trappola JavaScript</h2> + +<p>di <a href="http://www.stallman.org/">Richard Stallman</a></p> + +<p><strong>Forse ogni giorno eseguite software non libero senza rendervene +conto, attraverso il vostro web browser.</strong></p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Per i webmaster: ci sono <a +href="/software/librejs/free-your-javascript.html">molti modi</a> di +indicare la licenza dei programmi JavaScript in un sito.</p> +</blockquote> + +<p>Nella comunità del software libero, l'idea che <a +href="/philosophy/free-software-even-more-important.html"> i programmi non +liberi maltrattino i propri utenti</a> è familiare. Alcuni di noi difendono +la libertà rifiutandosi categoricamente di installare software proprietario; +molti altri considerano la non-libertà un punto negativo per il programma.</p> + +<p>Molti utenti sono a conoscenza del fatto che questo problema si applica ai +plug-in che i browser offrono di installare, visto che possono essere sia +liberi che non liberi. Ma i browser eseguono altri programmi non liberi per +i quali non vi chiedono il permesso o vi avvisano: i programmi che le pagine +web contengono o includono da altri siti. Questi programmi sono spesso +scritti in JavaScript, anche se alle volte sono scritti in altri linguaggi.</p> + +<p>JavaScript (ufficialmente ma raramente chiamato ECMAScript) era usato un +tempo per vari fronzoli non essenziali nelle pagine web come effetti visuali +di navigazione. Era quindi accettabile considerare questi come una mera +estensione del linguaggio HTML più che come software vero e proprio, e così +ignorare il problema.</p> + +<p>Alcuni siti continuano ad usare JavaScript in quella maniera, mentre molti +lo usano per grandi programmi che svolgono operazioni complesse. Per +esempio, Google Docs prova a scaricare nella vostra macchina un programma +JavaScript che pesa mezzo megabyte e talmente compresso da poterlo chiamare +Obfuscript perché mancante di commenti e di spazi e popolato da metodi dai +nomi lunghi un singolo carattere. Il codice sorgente di un programma è la +forma preferita per poterlo modificare; il codice compresso non è codice +sorgente, ed il vero codice sorgente di questo programma non è accessibile +dall'utente.</p> + +<p>Oltre ad essere non liberi, molti di questi programmi sono malware perché <a +href="http://github.com/w3c/fingerprinting-guidance/issues/8">spiano gli +utenti</a>. Inoltre alcuni siti usano servizi che registrano <a +href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/">tutte +le azioni dell'utente mentre visita pagina</a>. Questi servizi in teoria +"eliminano" i dati sensibili che il sito non dovrebbe raccogliere, ma anche +se questo fosse vero il problema comunque rimane: questi servizi forniscono +al sito informazioni che esso non dovrebbe ricevere.</p> + +<p>I browser di solito non vi comunicano di aver caricato dei programmi +JavaScript. Alcuni browser forniscono un'opzione per disabilitare JavaScript +del tutto, ma anche se siete a conoscenza di questo problema, identificare e +bloccare i programmi non banali e non liberi non è facile e persino nella +comunità del software libero la maggior parte degli utenti non ne è a +conoscenza, anche per via del silenzio dei browser.</p> + +<p>È possibile rilasciare un programma JavaScript come software libero se si +distribuisce il suo codice sorgente sotto una licenza libera. Se il +programma è indipendente (nel senso che il suo funzionamento e scopo non +dipendono dalla pagina che lo conteneva) questo va bene: lo si può copiare +su un file nel proprio computer, modificarlo, ed eseguirlo in un browser. Ma +questo caso non è comune.</p> + +<p>Nel caso più comune, i programmi JavaScript sono fatti per funzionare in una +specifica pagina o uno specifico sito, e a sua volta la pagina, o il sito, +funziona solo se questi sono disponibili. Allora si ha un altro problema: +anche se il codice sorgente del programma è disponibile, i browser non +offrono un modo di eseguire la vostra versione modificata del programma al +posto dell'originale quando visitate una pagina. L'effetto è comparabile +alla tivoizzazione, anche se non così difficile da sormontare.</p> + +<p>JavaScript non è l'unico linguaggio che i siti web usano per i programmi +inviati agli utenti. Flash offre di programmare attraverso una variante +estesa di JavaScript; se arriveremo ad avere uno strumento libero per Flash +abbastanza completo, dovremo comunque scontrarci con il problema dei +programmi Flash non liberi. Silverlight è in procinto di porre un problema +simile a Flash e se possibile peggiore, visto che Microsoft lo usa come +piattaforma per codec non liberi. Un sostituto libero per Silverlight non +può funzionare per il mondo libero a meno che dei codec liberi non vengano +inclusi con esso.</p> + +<p>Anche le applet Java vengono eseguite dal browser e pongono simili +problematiche. In generale, ogni sistema di applet pone simili +problematiche. Avere un ambiente di esecuzione libero per un'applet ci porta +a scontrarci con questo problema.</p> + +<p>Teoricamente è possibile programmare in HTML e CSS, ma in pratica è +difficile riuscire a fare qualcosa di significativo usando la limitata +programmabilità disponibile con queste due tecnologie. Questi programmi +dovrebbero essere liberi, ma il CSS non è comunque un problema (nel 2016) +per la libertà degli utenti.</p> + +<p>C'è un movimento forte che chiede ai siti web di comunicare solo tramite +formati e protocolli liberi (alcuni dicono "aperti"), ovvero la +cui documentazione viene pubblicata e che ognuno può liberamente +implementare. Con la presenza di programmi nelle pagine web, il criterio è +necessario ma non sufficiente. Lo stesso JavaScript, come formato, è libero, +e l'uso di JavaScript in un sito web non è necessariamente negativo ma, come +abbiamo già visto, nemmeno necessariamente positivo. Quando il sito +trasmette il programma all'utente, non è abbastanza che il linguaggio in cui +questo è stato scritto sia documentato e libero; anche il programma deve +essere libero. “Solo i programmi liberi trasmessi all'utente“ +possono soddisfare il criterio di condotta appropriata per i siti web.</p> + +<p>Caricare ed eseguire programmi non liberi silenziosamente è uno degli +svariati problemi posti dalle "applicazioni web". Il termine +"applicazione web" è stato concepito per ignorare la distinzione +fondamentale tra software trasmesso all'utente e software in esecuzione su +un server. Può fare riferimento ad un programma client specializzato che +lavora a stretto contatto con un programma server specializzato. I lati +client e server sollevano diverse questioni etiche anche quando sono così +reciprocamente integrati da poter costituire ai fatti un singolo +programma. Questo articolo fa riferimento solamente a ciò che riguarda +software lato client. Ci occuperemo del lato server separatamente.</p> + +<p>In termini pratici, come possiamo affrontare il problema del software +JavaScript (non banale) non libero nei siti web? Il primo passo è evitare di +eseguirlo. </p> + +<p>Che cosa vuol dire "non banale"? Dipende da caso a caso ed è +quindi preferibile definire un criterio semplice che offre buoni risultati +piuttosto che cercare una risposta esatta.</p> +<p> +La nostra politica provvisoria considera un programma JavaScript non banale +se: </p> + +<ul> + <li>effettua una richiesta AJAX oppure viene caricato assieme ad altri script +che effettuano una richiesta AJAX,</li> + + <li>carica uno script esterno dinamicamente oppure viene caricato assieme ad +altri script che lo fanno,</li> + + <li>definisce funzioni o metodi e carica uno script esterno (da html) o viene +caricato esternamente a sua volta,</li> + + <li>usa costrutti dinamici di JavaScript che sono difficili da analizzare senza +interpretare il programma o viene caricato assieme ad altri script che usano +tali costrutti. Questi costrutti sono: + <ul> + <li>l'uso della funzione eval,</li> + <li>la chiamata di metodi con notazione a parentesi quadre,</li> + <li>l'uso di qualsiasi costrutto diverso da una stringa letterale con alcuni +metodi (Obj.write, Obj.createElement, ...).</li> + </ul> + </li> +</ul> + +<p>Come facciamo a determinare se il codice JavaScript è libero? In un <a +href="/licenses/javascript-labels.html">ulteriore articolo</a> proponiamo +metodo con cui un programma JavaScript non banale in una pagina web può +comunicare l'indirizzo web del suo codice sorgente e la sua licenza tramite +commenti stilizzati.</p> + +<p>Infine, è necessario che noi modifichiamo i browser liberi per rilevare e +bloccare JavaScript non libero nelle pagine web. Il programma <a +href="/software/librejs/">LibreJS</a> rileva JavaScript non banale e libero +nelle pagine che visitate e lo blocca. LibreJS è parte di IceCat ed è +disponibile come estensione per Firefox.</p> + +<p>Gli utenti dei browser hanno anche bisogno di un modo facile per +<em>sostituire</em> il codice JavaScript di una pagina con il proprio. Il +codice specificato può essere una modifica parziale o totale del programma +JavaScript libero trovato nella pagina. Greasemonkey si avvicina ad essere +adatto a questo scopo ma non lo è del tutto, visto che non garantisce che il +codice venga modificato prima dell'esecuzione del programma. Usare un proxy +locale funziona, ma è troppo scomodo per poter essere una soluzione +pratica. Abbiamo bisogno di creare sia una soluzione affidabile e facile da +usare che dei siti per poter condividere le modifiche. Il progetto GNU +vorrebbe consigliare dei siti che sono dedicati esclusivamente alle +modifiche libere.</p> + +<p>Queste funzionalità permetteranno di includere programmi JavaScript liberi +all'interno di una pagina web in maniera pratica. JavaScript cesserà di +essere un ostacolo per la libertà più di quanto lo siano oggigiorno C e +Java. Saremo capaci di respingere ed addirittura sostituire i programmi +JavaScript non banali e non liberi proprio come facciamo con i programmi che +vengono convenzionalmente installati. La nostra campagna per spingere i siti +a liberare il proprio JavaScript può avere inizio.</p> + +<p>Nel frattempo, c'è un caso in cui è accettabile eseguire del JavaScript non +libero: per inviare una lamentela agli operatori del sito, chiedendo loro di +liberare o altrimenti rimuovere il codice JavaScript dal loro sito. Vi prego +di non esitare ad abilitare JavaScript temporaneamente per questo +scopo—non dimenticate di disattivarlo una volta finito.</p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Per i webmaster: ci sono <a +href="/software/librejs/free-your-javascript.html">molti modi</a> di +indicare la licenza dei programmi JavaScript in un sito.</p> +</blockquote> + +<p><strong>Grazie a:</strong> <a href="/people/people.html#mattlee">Matt +Lee</a> e <a href="http://ejohn.org">John Resig</a> per il loro aiuto nel +definire il criterio da noi proposto ed a David Parunakian per avermi messo +a conoscenza del problema.</p> + +<div class="translators-notes"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> + </div> +</div> + +<!-- for id="content", starts in the include above --> +<!--#include virtual="/server/footer.it.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Per informazioni su FSF e GNU rivolgetevi, possibilmente in inglese, a <a +href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Ci sono anche <a +href="/contact/">altri modi di contattare</a> la FSF. Inviate segnalazioni +di link non funzionanti e altri suggerimenti relativi alle pagine web a <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> + +<p> +<!-- TRANSLATORS: Ignore the original text in this paragraph, + replace it with the translation of these two: + + We work hard and do our best to provide accurate, good quality + translations. However, we are not exempt from imperfection. + Please send your comments and general suggestions in this regard + to <a href="mailto:web-translators@gnu.org"> + + <web-translators@gnu.org></a>.</p> + + <p>For information on coordinating and submitting translations of + our web pages, see <a + href="/server/standards/README.translations.html">Translations + README</a>. --> +Le traduzioni italiane sono effettuate ponendo la massima attenzione ai +dettagli e alla qualità, ma a volte potrebbero contenere imperfezioni. Se ne +riscontrate, inviate i vostri commenti e suggerimenti riguardo le traduzioni +a <a +href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a> +oppure contattate direttamente il <a +href="http://savannah.gnu.org/projects/www-it/">gruppo dei traduttori +italiani</a>.<br/>Per informazioni su come gestire e inviare traduzioni +delle nostre pagine web consultate la <a +href="/server/standards/README.translations.html">Guida alle traduzioni</a>.</p> +</div> + +<!-- Regarding copyright, in general, standalone pages (as opposed to + files generated as part of manuals) on the GNU web server should + be under CC BY-ND 4.0. Please do NOT change or remove this + without talking with the webmasters or licensing team first. + Please make sure the copyright date is consistent with the + document. For web pages, it is ok to list just the latest year the + document was modified, or published. + + If you wish to list earlier years, that is ok too. + Either "2001, 2002, 2003" or "2001-2003" are ok for specifying + years, as long as each year in the range is in fact a copyrightable + year, i.e., a year in which the document was published (including + being publicly visible on the web or in a revision control system). + + There is more detail about copyright years in the GNU Maintainers + Information document, www.gnu.org/prep/maintain. --> +<p>Copyright © 2009-2013, 2016, 2017, 2018 Richard Stallman</p> + +<p>Questa pagina è distribuita secondo i termini della licenza <a rel="license" +href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons +Attribuzione - Non opere derivate 4.0 internazionale</a> (CC BY-ND 4.0).</p> + +<!--#include virtual="/server/bottom-notes.it.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> +Tradotto da membri del gruppo dei traduttori italiani GNU. Revisioni di +Andrea Pescetti.</div> + +<p class="unprintable"><!-- timestamp start --> +Ultimo Aggiornamento: + +$Date: 2019/12/30 12:08:30 $ + +<!-- timestamp end --> +</p> +</div> +</div> +<!-- for class="inner", starts in the banner include --> +</body> +</html> |