Browser Environment
Üretim yapınızın nasıl sunulduğunu bildirin; böylece korunan kod bütünlüğünü buna bağlayabilir.
browserEnvironment seçeneği, üretim yapınızın sunulduğu ortama dair bilgileri bildirir; böylece korunan kod kendini bunlara bağlayabilir veya bunlara tepki verebilir. Küçük bir nesnedir ve her alan yalnızca belirli bir korumayla birlikte etkili olur — tek başına seçenek hiçbir şey yapmaz:
browserEnvironment: { transport: 'https', hosting: 'remote' }
transport
Üretim ortamınızın paketi sunduğu şema — 'http' veya 'https'. vmSelfDefending ile birlikte etkili olur.
'https' ile bir tersine mühendisin düz HTTP üzerinden sunduğu bir kopya doğru çalışmaz. 'http' ya da ayarlanmamış bir alan böyle bir koruma eklemez.
hosting
Üretim paketinizin nereden sunulduğu — 'remote' veya 'local'. vmDebugProtection ile birlikte ve yalnızca browser ile browser-no-eval hedeflerinde etkili olur. Obfuscator sürümü 7.14.0 veya üzeri gerektirir.
'remote' ile, bir tersine mühendisin alıp kendi yerel ortamında çalıştırdığı kopya çalışma zamanı ortamı uyuşmazlığı olarak değerlendirilir ve otomasyon savunmaları vmDefenseReaction ile yapılandırıldığı şekilde tepki verir. 'local' veya ayarlanmamış bir alan böyle bir koruma eklemez.
Desteklenen hedefler
browserEnvironment yalnızca browser, browser-no-eval ve service-worker hedefleri için geçerlidir. node, userscript ve bytenode için seçenek reddedilir — obfuscation, ayarı sessizce atmak yerine bir doğrulama hatasıyla başarısız olur. hosting daha da dardır: bir service worker'da kabul edilir ancak orada hiçbir şeyi bağlamaz.
Gereksinimler
transportvmSelfDefendingile,hostingisevmDebugProtectionile birlikte etkili olur; aksi hâlde ikisi de hiçbir şey yapmaz.- Bir
browser,browser-no-evalveyaservice-workerhedefi (hostingiçinbrowserveyabrowser-no-eval). transportiçin obfuscator sürümü 7.9.0 veya üzeri,hostingiçin 7.14.0 veya üzeri.
Örnek
JavaScriptObfuscator.obfuscate(code, {
vmObfuscation: true,
vmSelfDefending: true,
vmDebugProtection: true,
target: 'browser',
browserEnvironment: { transport: 'https', hosting: 'remote' }
});