回答:
難読化は、javascriptコードの本当の意味と意図を「あいまいにする」手段です。一部のサイトでは、コードをコピー/借用したい人の障害として使用しています。他のサイトでは、コードの実際の意図を隠す手段としてこれを使用しています。
オブスキュレーションのいくつかの形式:
隠蔽はそれ自体が悪ではありませんが、悪意を隠そうとするために使用できます。それはおそらくAVGが反対したことです。非常に多くの不明瞭さを検出したため、javascriptが防止しようとしていたことを実行しようとしているかどうかを判断できませんでした。そのため、コードが正常に見えることを確認できないため、デフォルトではコードが安全でないと宣言しました。
1
そして2
また、JavaScriptのコンプレッサーによって行われます。コンプレッサーはコードを副作用として難読化しますが、それは主な目的ではありません。主な目的は、帯域幅を減らすために、javascriptを小さくすることです。
難読化とは、意図した意味を隠すことです。
この場合、次のような明確に読みやすいJavaScriptスニペット
window.onload = function() { alert("Hello " + username) };
で置き換えることができます
var _0xc5b2=["\x6F\x6E\x6C\x6F\x61\x64",
"\x48\x65\x6C\x6C\x6F\x20"];window[_0xc5b2[0]]=
function (){alert(_0xc5b2[1]+username);} ;
あるいは
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"));
3つのコードスニペットはすべてまったく同じことを行いますが、最初のコードを読むだけでその意図を簡単に理解できます。
どうやら、AVGは実行を許可する前にJavaScriptコードの目的を理解しようとします。コードが難読化されると、AVGはおそらく失敗します。したがって、警告。
そうは言っても、一部のWebサイトはJavaScriptを難読化するのは悪意ではなく、作品を盗むことを困難にするためです。難読化は通常、この目的で使用する場合は役に立ちませんが、重要なことは、難読化は必ずしも悪意を意味するものではないということです。