Risposte:
L'offuscamento è un mezzo per "oscurare" il vero significato e l'intento del tuo codice javascript. Alcuni siti lo usano come ostacolo per le persone che vogliono copiare / prendere in prestito il loro codice. Altri siti lo usano come mezzo per nascondere l'effettiva intenzione del codice.
Alcune forme di oscuramento:
L'oscuramento non è di per sé un male, ma può essere usato per cercare di nascondere un intento malvagio e questo è probabilmente ciò a cui AVG stava obiettando. Ha rilevato così tanta oscurità che non riusciva a capire se il javascript stesse cercando di fare qualcosa che stava cercando di prevenire. Come tale, ha dichiarato il codice come non sicuro per impostazione predefinita poiché non può verificare che il codice sembri OK.
1
e 2
sono anche eseguiti da compressori javascript. I compressori offuscano il codice come effetto collaterale, ma non è questo il loro scopo principale; il loro scopo principale è quello di ridurre il javascript, ridurre la larghezza di banda.
L'offuscamento si riferisce a nascondere il significato previsto di qualcosa.
In questo caso, uno snippet JavaScript chiaramente leggibile, come ad esempio
window.onload = function() { alert("Hello " + username) };
può essere sostituito da
var _0xc5b2=["\x6F\x6E\x6C\x6F\x61\x64",
"\x48\x65\x6C\x6C\x6F\x20"];window[_0xc5b2[0]]=
function (){alert(_0xc5b2[1]+username);} ;
o anche
eval(unescape("var%20_0xc5b2%3D%5B%22onload%22%2C%22Hello%20%22%5D%3Bwindow"+
"%5B_0xc5b2%5B0%5D%5D%3Dfunction%20%28%29%7Balert%28_0xc5b2%5B1%5D+username"+
"%29%3B%7D%20%3B"));
Tutti e tre i frammenti di codice fanno esattamente la stessa cosa, ma solo leggere il primo ti permetterà di capirne facilmente le intenzioni.
Apparentemente, AVG tenta di comprendere lo scopo del codice JavaScript prima di consentirne l'esecuzione. Quando il codice viene offuscato, AVG probabilmente fallirà. Da qui l'avvertimento.
Detto questo, alcuni siti Web offuscano il loro JavaScript non a causa di cattive intenzioni, ma per rendere difficile rubare il loro lavoro. L'offuscamento di solito è inutile se usato per questo scopo, ma il punto è che l'offuscamento non significa necessariamente cattive intenzioni.