Mengamankan Kode JavaScript di NativeScript dengan Obfuscator pada Webpack

Mengamankan Kode JavaScript di NativeScript dengan Obfuscator pada Webpack

Salah satu langkah penting sebelum merilis aplikasi adalah mengamankan kode sumber, terutama jika Anda pakai JavaScript atau TypeScript. Karena file .js bisa dengan mudah di-reverse-engineer, kita butuh cara buat menyulitkan proses itu.

Nah, di artikel ini saya akan coba tunjukan bagaimana cara pakai javascript-obfuscator dan webpack-obfuscator di project NativeScript Anda.

Apa Itu Obfuscate?

Obfuscation itu teknik buat menyamarkan kode JavaScript jadi susah dibaca. Tujuannya:

  • Mengurangi risiko pembajakan
  • Menyulitkan reverse engineering
  • Lindungi logika aplikasi yang sensitif

Contoh sebelum dan sesudah di-obfuscate:

const apiUrl = "https://api.myapp.com/data";

Setelah di-obfuscate:

var _0x23a1=["\x68\x74\x74\x70\x73\x3A\x2F\x2F..."];
(function(_0xabc){ ... })();

Langkah-langkah

1. Install Obfuscator

npm install javascript-obfuscator webpack-obfuscator --save-dev

2. Konfigurasi di webpack.config.js

Tambahkan ini ke file webpack.config.js Anda:

const { webpack } = require('@nativescript/webpack');
const JavaScriptObfuscator = require('webpack-obfuscator');

module.exports = env => {
  webpack.init(env);

  webpack.chainWebpack(config => {
    config.plugin('obfuscator')
      .use(JavaScriptObfuscator, [
        {
          rotateStringArray: true,
          stringArray: true,
          stringArrayEncoding: ['rc4'],
          stringArrayThreshold: 0.75,
          selfDefending: true,
          controlFlowFlattening: true,
          deadCodeInjection: true,
          identifierNamesGenerator: 'hexadecimal',
          renameGlobals: true,
          splitStrings: true,
          splitStringsChunkLength: 6
        },
        ['vendor.js']
      ]);
  });

  return webpack.resolveConfig();
};

3. Build Aplikasi

Tanpa signing:

ns build android --release --bundle

Dengan signing:

ns build android --release --bundle --aab \
--key-store-path ./keystore.keystore \
--key-store-password yourPassword \
--key-store-alias yourAlias \
--key-store-alias-password yourPassword

4. Verifikasi

Ekstrak file .apk atau .aab, lalu buka file bundle.js di dalam folder assets/ atau app/.

Kalau berhasil, Anda bakal lihat isi seperti ini:

var _0x23a1=["\x68\x74\x74\x70\x73\x3A\x2F\x2F..."];
(function(_0xabc){ ... })();

5. Tips Tambahan

  • Jangan obfuscate vendor.js atau runtime.js — bisa bikin aplikasi crash
  • Selalu tes aplikasi setelah build
  • Kalau cuma mau obfuscate file tertentu, pakai pola seperti ['**/main-page.js']

0/Post a Comment/Comments

Lebih baru Lebih lama