AVGは最近JavaScript Obfuscationが原因でWebページがブロックされたことを通知してきました。
Webページがブロックされたのはなぜですか?それは正確にはどういう意味ですか?
難読化は、JavaScriptコードの本当の意味と意図を「不明瞭にする」手段です。一部のサイトでは、コードをコピーまたは借用したい人への障害として使用しています。他のサイトは、コードの実際の意図を隠す手段としてそれを使用します。
隠蔽のいくつかの形式:
オブスキュレーション自体は悪ではありませんが、悪意を隠そうとするために使用でき、おそらくAVGが反対していました。非常に多くのオブスキュレーションを検出したため、 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を難読化して、邪悪な意図のためではなく、作業を盗むことを困難にしています。難読化は、この目的で使用しても通常は役に立ちませんが、要点は必ずしも意図が悪意であるとは限らないということです。