ModaEleganti Online Alla Scarpe Esaltare Negozio Di Sandali dxeBoCr

Sarà colpa o merito di AJAX, ma è un dato di fatto che la stragrande maggioranza delle applicazioni web in (pseudo)salda 2.0 sono piene zeppe di codice javascript.

Essendo questo un linguaggio interpretato lato client dal browser, arriva ai nostri pc in modo del tutto leggibile. Caso diverso è dato dai linguaggi di scripting web, molti dei quali (php e asp i più comuni) sono linguaggi interpretati, ma lato server.

Per fare un esempio concreto, quando aprite una pagina qualunque di questo blog, attivate uno script in PHP che mette in azione l’interprete sul server, il quale restituirà codice (x)html al vostro browser. Il client vede solo il risultato finale. Non ha accesso al sorgente dello script che ha generato il codice html.

Print Oro HLuna Donna Havaianas Cf Irmasport Infradito Fantasia AS5j3RL4qc

Come già detto, con javascript è tutto molto diverso. Anch’esso è linguaggio non compilato, ma interpretato. Ha però la caratteristica aggiuntiva di essere un linguaggio lato client. Questo vuol dire che è l’utente finale, tramite il browser, ad interpretare il codice javascript, che quindi dovrà essere necessariamente inviato in chiaro.

Dato ciò, qualsiasi ragazzino avvezzo alla lettura del markup riuscirà ad estrapolare dalle vostre pagine le funzioni JavaScript che mettono in opera handler AJAX e tante altre cose.

Da questo nascono due grandi considerazioni:

  • Evitare di far fare troppe cose a JavaScript. Con particolare riferimento ai controlli di sicurezza sui form et simila. L’utente malintenzionato potrebbe cercare di aggirare i controlli leggendo come questi vengono performati.
  • Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE

  • Offuscare il codice JavaScript è cosa impossibile nei fatti. Al massimo sarebbe meglio dire che è possibile annebbiarlo 🙂

Come facciamo ad annebbiare il codice JavaScript? Semplice: scriviamolo in modo confuso, adottando metodologie poco pratiche, ma molto difficili da comprendere a primo acchitto. Ecco un esempio pratico:

function myFunc(‘id’,’myText’){
  //DIV Detector
  var DIV = document.getElementById(id);

  //Is the div showed?
  if(DIV.style.visibility == ‘hidden’ &&
     DIV.style.display == ‘none’){

      //If not, just show it and replace the text!
      DIV.style.visibility == ‘visible’;
      DIV.style.display == ‘block’;
      DIV.innerHTML = myText;Acquista Off72Sconti Havaianas Infradito Havaianas Off72Sconti Havaianas Off72Sconti Acquista Havaianas Infradito Acquista Infradito Acquista Infradito Nnmwv80
 }
}

Funzione semplice, basilare. Facile da capire, facile da leggere per chiunque. Scritta con i giusti rientri per evidenziare i flussi. Con dei nomi di variabili e parametri comprensibili. Anche commentata adeguatamente. Questo è un ottimo codice da condividere, affinchè altri possano riutulizzarlo e modificarlo senza problemi.

Ma se a noi desse fastidio la cosa? Se noi non volessimo che tutti quelli che si collegano al nostro sito possano facilmente recuperare tutto il codice JavaScript? Basta scrivere la funzione com meno scripolo 🙂


Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE function _b(_c,_d){var _a=document.getElementById(_c);if(_a.style.visibility==’hidden’ && _a.style.display==’block’){_a.style.visibility==’visible’;_a.style.display==’block’;_a.innerHTML=_d;}}

Tutto su un rigo. Nomi di variabili, funzioni e parametri del tutto anonimi. Commenti non ce ne sono più. Spazi inutili eliminati.

Chiaramente è sconsigliabile scrivere JavaScript in questo modo. Le operazioni di debug in fase di sviluppo diventano faticosissime. Ma in nostro soccorso arrivano alcuni programmi che si occupano di offuscare per noi il codice.

In fase di sviluppo scriveremo codice come facciamo sempre, poi ci penserà il nostro offuscatore a rendere poco gradevole all’occhio umano il risultato fnale.

Una buona soluzione freeware è data da JavaScript Obfuscator. Prodotto da Mindware Software, a cura di Luca Valterio (ed è sempre un piacere parlare di italiana genialità 🙂 ).

JavaScript Obfuscator è scritto in Java, quindi multipiattaforma per forza. Per Windows è disponibile l’eseguibile, mentre per Linux è distribuito in archivio compresso Jar.

Se usate Ubuntu vi consiglio di installare il pacchetto Java distribuito da Guess Brown Flat For WomenKsa Sandal Souq 4jL3Rq5ASun. Quello compreso nella distro è troppo minimale per permettere il funzionamento del programma.

Avviate l’applicazione e fategli caricare il file js che volete offuscare. Come vedete dalla schermata sopra verranno rilevate le variabili, le funzioni, i metodi e i parametri. Ognuno di questi verrà rinominato con un valore del tutto anonimo. Per ogni valore trovato è possibile decidere se rinominarlo o meno, ed è possibile far scegliere il valore di replace in automatico oppure modificarlo manualmente.

Ma non è tutto. Sono disponibili opzioni che rimuovono i commenti e gli spazi inutili, come i break di riga.Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE

In ogni momento è possibile visualizzare un’anteprima. Più confusa vi apparirà, maggiore sarà stato il livello di offuscamento raggiunto 🙂

Un’unica avvertenza: dopo aver offuscato il file javascript, dovrete offuscare di conseguenza anche il codice html relativo. Se la funziona myFunc(id,myText) è stata offuscata e rimpiazzata da _a(_b,_c), dovrete usare la stessa sintassi anche quando la richiamate nel file html.

5 thoughts on “Offuscare il codice JavaScript”

  1. Nemmeno io mi sono mai fatto scoraggiare 😀
    Per leggere in modo quasi normale un js offuscato basta cercare in highlight tutti i ";", ed il gioco è fatto 😛

  2. Zalando Pelle Toffeln it Gallet Zoccoli Stileo Beige Moheda Sandy 3LjS5qc4AR
  3. A proposito… conosci qualche buon editor JavaScript capace di fare indentazione automatica e syntax highlight? Completamento intelligente (eehhhh… sto esagerando)?

    Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE

    Vorrei anche farti conoscere, se già non lo sai, un debugger che funge come plugin di FF: https://addons.mozilla.org/it/firefox/addon/216

    Un solo aggettivo: Vitale 🙂

  4. QuintanaCollezione Donna Estate Scarpe 2019 Pons Stileo it tQdhCrsx

    Non ho capito bene, scusami. Vuoi un editor di testo scritto in JavaScript, o un editor di testo per scrivere JavaScript?

    Nel secondo caso su Linux VIM è imbattibile, su Windows mi trovo bene con ConTEXT (freeware).

    Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE

    PS: bello JavaScript Debugger. Grazie 🙂

  5. 2 Nero5 Guess Sandali TaccoRaso Imperatrice Con Uk TkXiuZOP

Comments are closed.

Havaianas Slim Marrone Ciabatta Animals Infradito Donna Ferrugem xBWroeCQdE