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
atauruntime.js
— bisa bikin aplikasi crash - Selalu tes aplikasi setelah build
-
Kalau cuma mau obfuscate file tertentu, pakai pola seperti
['**/main-page.js']
Posting Komentar