Çalışma Ortamı Uyumluluğu
Gerçek çalışma ortamına uygun hedefi seçin. Tarayıcı ve Node derlemeleri farklı savunmalar içerebilir; tarayıcı hedefi Node hedefinin yerini tutmaz.
target
browser- Chrome, Firefox, Safari, Edge.browser-no-eval-browserile aynıdır, ancak çıktıeval()kullanmaz. Hedef sayfadaeval/unsafe-evalkullanımını yasaklayan bir Content Security Policy varsa bunu kullanın.node- Node.js ortamı. Tarayıcıya özgü seçenekler devre dışı bırakılır (bunlarwindow/documentgerektirir ve Node'da ya etkisiz kalır ya da hata fırlatır). Yalnızca tarayıcıda bulunan API'lere dayanan bazıvmSelfDefendingsavunmaları (headless tarayıcı tespiti, iframe tabanlı temiz realm kurtarma, inspector karşıtı/DOM denetimleri) bu hedef için üretilmez.service-worker- Service Worker bağlamı.windowyok,documentyok, farklı birselfglobal nesnesi var.userscript- kullanıcı betiği yöneticisi korumalı alanı (örn. Tampermonkey).vmSelfDefendingsavunmaları buna göre ayarlanır. VM Obfuscation (veya Parse HTML) ve obfuscator v6.9.0+ gerektirir.bytenode- bytenode ile.jscbiçimine derlenecek kod için. VM Obfuscation (veya Parse HTML) ve obfuscator v6.13.0+ gerektirir.
Tarayıcı ortamı ve alan adları
Kodun nerede çalıştığına dair bildirimler gerçek dağıtımla eşleşmelidir. browserEnvironment, derlemenin gerçekte nasıl sunulduğunu tanımlamalıdır (bkz. Browser Environment) ve VM Domain Lock, onu sunan her alan adını listelemelidir (bkz. VM Domain Lock). Otomasyon ve hata ayıklayıcılar gelişmiş savunmaları tetikleyebilir; bkz. Test ve CI.
JavaScript
Fonksiyon adları ve fonksiyonların kaynak metni obfuscation ile değişebilir. .name veya .toString() sonuçlarını kalıcı uygulama verisi olarak kullanmayın; bunun yerine açık tanımlayıcılar kullanın. Ayarlarınız gerektirdiğinde herkese açık global değişkenler görünür kalabilir.
strictMode
strictMode: null ve strictMode: false değerleri, açık direktifleri, ES modüllerini ve sınıf metotlarını yine de strict olarak tanır. strictMode: true tüm girdiyi strict olarak ele alır. Son çalışma bağlamıyla eşleştirin; obfuscation sonrasında strict mode ekleyen bir paketleyici davranışı değiştirebilir.
Derleme hattı
Son obfuscation adımından önce TypeScript veya JSX kodunu derleyin ve uygulamanızı paketleyin. comment modunun onları bulabilmesi için /* javascript-obfuscator:vm */ yorumlarını bu derleme boyunca koruyun. Self Defending veya VM Self Defending çıktısını sonrasında küçültmeyin, biçimlendirmeyin veya başka bir şekilde yeniden yazmayın. Source map'ler VM ve HTML obfuscation için kullanılamaz.
