Dokümantasyon
/

Çalışma Ortamı Uyumluluğu

Ç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 - browser ile aynıdır, ancak çıktı eval() kullanmaz. Hedef sayfada eval/unsafe-eval kullanı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 (bunlar window/document gerektirir ve Node'da ya etkisiz kalır ya da hata fırlatır). Yalnızca tarayıcıda bulunan API'lere dayanan bazı vmSelfDefending savunmaları (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ı. window yok, document yok, farklı bir self global nesnesi var.
  • userscript - kullanıcı betiği yöneticisi korumalı alanı (örn. Tampermonkey). vmSelfDefending savunmaları buna göre ayarlanır. VM Obfuscation (veya Parse HTML) ve obfuscator v6.9.0+ gerektirir.
  • bytenode - bytenode ile .jsc biç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.