जवाबों:
Obfuscation आपके जावास्क्रिप्ट कोड के वास्तविक अर्थ और आशय को "अस्पष्ट" करने का एक साधन है। कुछ साइटें उन लोगों के लिए एक बाधा के रूप में उपयोग करती हैं जो अपने कोड को कॉपी / उधार लेना चाहते हैं। अन्य साइटें कोड के वास्तविक इरादे को छिपाने के लिए इसका उपयोग करती हैं।
अस्पष्टता के कुछ रूप:
अस्पष्टता स्वयं बुराई नहीं है, लेकिन इसका उपयोग एक दुष्ट इरादे को छिपाने की कोशिश के लिए किया जा सकता है और शायद यही एवीजी को आपत्ति थी। इसने इतनी अस्पष्टता का पता लगाया कि यह नहीं बता सकता था कि जावास्क्रिप्ट कुछ ऐसा करने की कोशिश कर रहा था जिसे रोकने की कोशिश कर रहा था। जैसे, यह कोड को डिफ़ॉल्ट रूप से असुरक्षित घोषित करता है क्योंकि यह सत्यापित नहीं कर सकता है कि कोड ठीक है।
1
और 2
जावास्क्रिप्ट कम्प्रेसर द्वारा भी किया जाता है। कंप्रेशर्स एक साइड-इफेक्ट के रूप में कोड को बाधित करते हैं, लेकिन यह उनका मुख्य उद्देश्य नहीं है; उनका मुख्य उद्देश्य जावास्क्रिप्ट को छोटा करना, बैंडविड्थ को कम करना है।
ओबफ्यूसेशन का आशय किसी वस्तु के इच्छित अर्थ को छिपाना है।
इस मामले में, एक स्पष्ट रूप से पठनीय जावास्क्रिप्ट स्निपेट, जैसे कि
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 संभवतः विफल हो जाएगा। इसलिए चेतावनी।
कहा जा रहा है कि, कुछ वेबसाइटें अपने इरादे को गलत इरादों के कारण नहीं बल्कि उनके काम को चुराने के लिए कठिन बनाने के लिए अपने जावास्क्रिप्ट को बाधित करती हैं। यदि इस उद्देश्य के लिए उपयोग किया जाता है, तो आम तौर पर विरोधाभास बेकार होता है, लेकिन मुद्दा यह है कि आक्षेप आवश्यक रूप से बुरे इरादों का मतलब नहीं है।