Dokümantasyon
/

Browser Environment

Browser Environment

Pro
v7.9.0+

Ü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:

JavaScript

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.

transport: 'https' olarak bildirilen bir derleme yalnızca gerçekten https: üzerinden sunulduğu yerde doğru çalışır. Diğer her şema onu bozar; bu nedenle bunu ancak üretim derlemenizi yükleyen her bağlam HTTPS olduğunda bildirin. Bunun dışında kalanlar:

  • düz http://, geliştirmedeki http://localhost dâhil;
  • file:// - Electron, Cordova ve diğer paketlenmiş uygulamalar;
  • blob: ve about: gömmeleri - about:blank veya srcdoc iframe'i içinde çalışan bir paket.

İstemci tarafındaki bir HTTP→HTTPS yönlendirmesi yine de önce HTTP sayfasını render eder; bu yüzden paket, yönlendirme tamamlanmadan çalışmamalıdır.

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.

hosting: 'remote' bildirilen bir yapı yalnızca uzak bir ana bilgisayardan yüklendiğinde doğru çalışır. Yerel bir ortamdan - localhost, bir geliştirme sunucusu, file:// - açılan paket tasarım gereği uyuşmazlık olarak değerlendirilir; bu nedenle bunu yalnızca üretim yapınızı yükleyen her bağlam uzaktan sunuluyorsa bildirin ve yerel geliştirme, test ve CI için kullandığınız yapılara eklemeyin.

hookedBuiltins

Üretim build'inizin çalıştığı çalışma zamanının yerel tarayıcı yerleşiklerini (native builtins) meşru biçimde JavaScript sarmalayıcılarla değiştirdiğini - uygulamanın kendi anti-tamper mekanizması, barındıran sayfa veya aynı realm'i paylaşan diğer tarayıcı uzantıları - bildirmek için true olarak ayarlayın. vmSelfDefending ile birlikte etkili olur. Obfuscator sürümü 7.15.0 veya üzeri gerektirir.

Self Defending normalde değiştirilmiş bir yerleşiği kurcalama olarak değerlendirir ve build'in çalışmasını durdurur. hookedBuiltins: true ile böyle bir ortamı tolere eder ve korunan kod çalışmaya devam eder. false veya ayarlanmamış bir alan katı davranışı korur.

JavaScript

hookedBuiltins kurcalama tespitini bilinçli olarak gevşetir: ayarlandığında, kodunuzu incelemek için aynı yerleşikleri sarmalayan bir analist de artık durdurulmaz. VM sanallaştırması, hata ayıklama önleme ve bütünlük korumaları etkilenmez. Yalnızca üretim çalışma zamanınızın yerleşikleri hook'ladığı biliniyorsa ve bu daha zayıf güvence kabul edilebilirse etkinleştirin.

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.

Panoda Transport, Hosting ve Hooked Builtins kontrolleri Advanced Protection bölümünde yer alır. Her biri yalnızca eşleştiği koruma açıkken - Transport ve Hooked Builtins için VM Self Defending, Hosting için VM Debug Protection - ve hedef bunu desteklediğinde düzenlenebilir hâle gelir.

Gereksinimler

  • transport ve hookedBuiltins vmSelfDefending ile, hosting ise vmDebugProtection ile birlikte etkili olur; aksi hâlde hiçbiri bir şey yapmaz.
  • Bir browser, browser-no-eval veya service-worker hedefi (hosting için browser veya browser-no-eval).
  • transport için obfuscator sürümü 7.9.0 veya üzeri, hosting için 7.14.0 veya üzeri, hookedBuiltins için 7.15.0 veya üzeri.

Örnek

JavaScript