Відповіді:
Затухання - це засіб "затемнення" реального значення та наміру коду 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"));
Усі три фрагменти коду роблять точно те саме, але лише читання першого дозволить вам легко зрозуміти його наміри.
Мабуть, AVG намагається зрозуміти призначення коду JavaScript, перш ніж дозволити його виконання. Коли код затуманено, AVG, ймовірно, вийде з ладу. Звідси попередження.
Однак, деякі веб-сайти приховують свій JavaScript не через злі наміри, а для того, щоб ускладнити крадіжку їх роботи. Обфускування зазвичай марно, якщо вона використовується для цієї мети, але справа в тому, що обтурація не обов'язково означає погані наміри.