VM Debug Protection
देखें
Obfuscator.io Advanced Defenses: Self-Defending, Debug Protection, Domain Lock
vmDebugProtection विकल्प VM रनटाइम में एंटी-डिबगिंग उपाय जोड़ता है, जिससे आपके सुरक्षित कोड की रिवर्स इंजीनियरिंग काफ़ी कठिन हो जाती है। हर डिटेक्शन कैसे प्रतिक्रिया करता है, यह vmDefenseReaction की debugger, automation और sandbox श्रेणियों से तय होता है।
जब browserEnvironment.hosting को 'remote' (v7.14.1+) पर सेट किया जाता है, तो Debug Protection बिल्ड को किसी रिमोट होस्ट से सर्व होने से भी बाँध देता है: किसी स्थानीय डेवलपमेंट होस्ट से सर्व की गई प्रति को रनटाइम वातावरण का बेमेल माना जाता है, और ऑटोमेशन रक्षा उपाय प्रतिक्रिया देते हैं।
ये रक्षा उपाय आपके अपने एजेंट्स, ऑटोमेशन और डिबगर्स के विरुद्ध भी काम करते हैं। वे निष्पादन रोक सकते हैं, असंबंधित एरर दे सकते हैं, या गलत नतीजे दे सकते हैं। फ़ंक्शनल टेस्ट के लिए अलग टेस्टिंग बिल्ड का उपयोग करें; टेस्टिंग और CI में वे विकल्प दिए गए हैं जिन्हें वह बिल्ड ओवरराइड करता है।
इंस्पेक्टर डिटेक्शन
ऑब्फ़स्केटर 8.0.0 से, vmDebugProtection बूलियन के साथ-साथ ऑब्जेक्ट भी स्वीकार करता है। ऑब्जेक्ट देने पर Debug Protection चालू रहता है, जबकि केवल एक डिटेक्टर में ढील दी जाती है:
inspectorDetection (डिफ़ॉल्ट रूप से चालू) जुड़े हुए Chrome DevTools Protocol इंस्पेक्टर या सक्रिय डिबगर का पता लगाता है और उस पर प्रतिक्रिया देता है। ब्राउज़र के डेवलपर टूल्स खोलने से ऐसा सेशन जुड़ जाता है, इसलिए खुले इंस्पेक्टर का पता लगाया जाता है और उस पर प्रतिक्रिया दी जाती है। प्रोडक्शन के लिए इसे चालू रखें; इसे केवल तभी बंद करें जब आपके उपयोगकर्ता वैध रूप से डेवलपर टूल्स खोलते हों। डैशबोर्ड में यह VM Debug Protection के अंतर्गत Inspector Detection उप-स्विच है (v8.0.0+), जो Debug Protection चालू होने पर दिखाई देता है।
ऑटोमेशन फ़्रेमवर्क। inspectorDetection चालू होने पर (डिफ़ॉल्ट), किसी CDP-आधारित टूल (Puppeteer, Playwright, Selenium/ChromeDriver) से सुरक्षित पेज चलाने को जुड़े हुए इंस्पेक्टर के रूप में पहचाना जाता है। vmDebugProtection: { inspectorDetection: false } केवल इंस्पेक्टर डिटेक्टर को बंद करता है; Debug Protection का ऑटोमेशन डिटेक्टर फिर भी नियंत्रित किए जा रहे ब्राउज़र पर प्रतिक्रिया कर सकता है। ऑटोमेटेड टेस्ट बिल्ड के लिए टेस्टिंग और CI का पालन करें, जो vmDebugProtection और vmSelfDefending को बंद करता है।
Content Security Policy
अगर आपकी Content Security Policy डायनामिक इवैल्यूएशन की अनुमति नहीं देती (unsafe-eval नहीं), तो browser-no-eval टारगेट का उपयोग करें और आउटपुट को उसी पॉलिसी के तहत जाँचें। यह टारगेट उन जाँचों के लिए एक फ़ॉलबैक का उपयोग करता है जो अन्यथा डायनामिक इवैल्यूएशन पर निर्भर होती हैं। यही बात प्रतिबंधात्मक CSP वाले ब्राउज़र एक्सटेंशन्स पर भी लागू होती है: सर्वोत्तम संगतता के लिए browser-no-eval का उपयोग करें।
