Dokumentacja
/

Zgodność środowiska

Zgodność środowiska

Wybierz target dla rzeczywistego środowiska. Buildy Browser i Node mogą zawierać różne zabezpieczenia; target Browser nie zastępuje Node. Deklaracje środowiska, ograniczenia domen i narzędzia także muszą odpowiadać konfiguracji.

target

  • browser - Chrome, Firefox, Safari, Edge.
  • browser-no-eval - tak samo jak browser, ale wynik nie korzysta z eval(). Do zastosowania, gdy strona docelowa ma politykę Content Security Policy zabraniającą eval/unsafe-eval.
  • node - środowisko Node.js. Opcje przeznaczone dla przeglądarki są wyłączone (wymagają window/document, więc w Node nic by nie robiły albo zgłaszałyby błąd). Część zabezpieczeń vmSelfDefending opartych na API dostępnych wyłącznie w przeglądarce - wykrywanie przeglądarek headless, odzyskiwanie czystego realmu przez iframe, kontrole inspektora i DOM - nie jest generowana dla tego targetu.
  • service-worker - kontekst Service Workera. Brak window, brak document, inna zmienna globalna self.
  • userscript - piaskownica menedżera userscriptów (np. Tampermonkey). Zabezpieczenia vmSelfDefending są odpowiednio dostosowywane. Wymaga obfuskatora w wersji 6.9.0 lub nowszej.
  • bytenode - dla kodu, który zostanie skompilowany do .jsc przy użyciu bytenode. Wymaga obfuskatora w wersji 6.13.0 lub nowszej.

JavaScript

Nazwy i tekst źródłowy funkcji mogą zmieniać się podczas obfuskacji. Nie używaj .name ani .toString() jako stabilnych danych; stosuj jawne identyfikatory. Publiczne nazwy globalne mogą pozostać widoczne zależnie od ustawień.

strictMode

strictMode: null i strictMode: false nadal rozpoznają jawne dyrektywy, moduły ES i metody klas jako strict. strictMode: true traktuje całe wejście jako strict. Dopasuj do końcowego środowiska; bundler dodający strict mode po obfuskacji może zmienić zachowanie.

CLI / API

Skompiluj TypeScript lub JSX i zbuduj pakiet przed końcową obfuskacją. Zachowaj komentarze wyboru VM do tego etapu. Potem nie minifikuj, nie formatuj i nie zmieniaj wyniku z Self Defending. Mapy źródłowe są niedostępne dla obfuskacji VM i HTML. W przypadku testów funkcjonalnych z agentami, automatyzacją lub debuggerami zobacz Testy i CI.