ブラウザー環境
本番ビルドがどのように配信されるかを宣言し、保護されたコードがその完全性を結び付けられるようにします。
browserEnvironment オプションは、本番ビルドが配信される環境に関する事実を宣言し、保護されたコードがそれらに自身を結び付けたり反応したりできるようにします。小さなオブジェクトで、各フィールドは特定の保護と組み合わせた場合にのみ有効です — このオプション単独では何もしません:
browserEnvironment: { transport: 'https', hosting: 'remote' }
transport
本番環境がバンドルを配信するスキーム — 'http' または 'https'。vmSelfDefending と併用した場合に有効です。
'https' を指定すると、リバースエンジニアが素の HTTP で配信したコピーは正しく動作しません。'http' またはフィールド未設定の場合、そのような保護は追加されません。
hosting
本番バンドルの配信元 — 'remote' または 'local'。vmDebugProtection と併用した場合に、browser および browser-no-eval ターゲットでのみ有効です。難読化ツールのバージョン 7.14.0 以降が必要です。
'remote' を指定すると、リバースエンジニアが持ち出して自身のローカル環境で実行したコピーは実行環境の不一致として扱われ、自動化対策の防御が vmDefenseReaction の設定に従って反応します。'local' または未設定の場合、この保護は追加されません。
対応ターゲット
browserEnvironment は browser、browser-no-eval、service-worker ターゲットにのみ適用されます。node、userscript、bytenode ではオプションが拒否され、設定を黙って破棄するのではなくバリデーションエラーで難読化が失敗します。hosting はさらに範囲が狭く、service worker では受け付けられますが、そこでは何も結び付けません。
要件
transportはvmSelfDefendingと、hostingはvmDebugProtectionと併用した場合に有効です。それ以外ではどちらも何もしません。browser、browser-no-eval、またはservice-workerターゲット(hostingの場合はbrowserまたはbrowser-no-eval)。- 難読化ツールのバージョンが
transportは 7.9.0 以降、hostingは 7.14.0 以降。
例
JavaScriptObfuscator.obfuscate(code, {
vmObfuscation: true,
vmSelfDefending: true,
vmDebugProtection: true,
target: 'browser',
browserEnvironment: { transport: 'https', hosting: 'remote' }
});