답변:
난독 화는 자바 스크립트 코드의 실제 의미와 의도를 "분산"하는 수단입니다. 일부 사이트는 코드를 복사 / 빌리려는 사람들에게 장애물로 사용합니다. 다른 사이트는 코드의 실제 의도를 숨기는 수단으로 사용합니다.
일부 형태의 가려 짐 :
모호는 그 자체로는 사악한 것이 아니라 사악한 의도를 숨기려고 시도 할 수 있으며 이는 아마도 AVG가 반대하는 것입니다. 자바 스크립트가 막으려 고하는 것을 시도하고 있는지 알 수없는 너무 많은 모호함을 감지했습니다. 따라서 코드가 정상으로 보이는지 확인할 수 없으므로 기본적으로 코드를 안전하지 않은 것으로 선언했습니다.
1
그리고 2
또한 자바 스크립트 압축기에 의해 수행된다. 컴프레서는 코드를 부작용으로 난독 처리하지만 주요 목적은 아닙니다. 주요 목적은 자바 스크립트를 더 작게 만들고 대역폭을 줄이는 것입니다.
난독 화란 의도 된 의미를 숨기는 것을 말합니다.
이 경우 명확하게 읽을 수있는 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를 난독 화하지 않고 작업을 도용하기 어렵게 만듭니다. 난독 화는 이러한 목적으로 사용되는 경우 일반적으로 쓸모가 없지만 요점은 난독 화가 반드시 나쁜 의도를 의미하지는 않는다는 것입니다.