Dokumentasi
/
Resep
/

Praktik Terbaik

Praktik Terbaik

Cara menerapkan obfuskasi secara efektif: apa yang perlu dilindungi, apa yang sebaiknya dibiarkan, dan apa yang tidak dapat dilakukan obfuskasi untuk Anda.

Rekomendasi

  • Obfuskasi hanya kode Anda sendiri.

    Jangan obfuskasi skrip vendor, pustaka, atau polyfill dengan VM. Semuanya sudah diminifikasi, dan obfuskasi hanya akan memperlambatnya.

  • Gunakan mode komentar untuk proteksi yang presisi.

    Setel vmTargetFunctionsMode ke 'comment', lalu tandai hanya fungsi-fungsi sensitif dengan /* javascript-obfuscator:vm */ alih-alih melindungi semuanya. Lihat Menargetkan Fungsi Tertentu.

  • Uji secara menyeluruh setelah obfuskasi.

    Selalu uji kode hasil obfuskasi di lingkungan target Anda. Beberapa opsi dapat merusak kode dengan cara yang halus. Pertahanan runtime juga bereaksi terhadap otomasi pengujian dan debugger; lihat Pengujian dan CI.

  • Kecualikan jalur yang sering dieksekusi dari obfuskasi VM.

    Gunakan vmExcludeFunctions untuk loop animasi, rendering real-time, atau kode yang sering dipanggil. Opsi ini hanya mencocokkan nama fungsi tingkat root (dengan Async Executor, fungsi async terluar); untuk menjauhkan kode bersarang yang sering dieksekusi dari VM, gunakan mode komentar dan tandai hanya fungsi-fungsi yang memerlukan proteksi.

Pemberitahuan Keamanan Penting

Jangan pernah menyimpan kunci API, rahasia, atau kredensial di kode JavaScript frontend - bahkan dengan obfuskasi.

Obfuskasi meningkatkan upaya yang diperlukan untuk memahami dan memodifikasi kode, tetapi obfuskasi bukan enkripsi dan tidak dapat menjamin bahwa rekayasa balik mustahil dilakukan. Runtime tetap dapat diamati di lingkungan yang dikendalikan penyerang, sehingga penyerang yang gigih selalu dapat mengekstrak data dari kode sisi klien. Simpan rahasia dan keputusan keamanan yang otoritatif di server.

Dalam praktiknya:

  • Menyimpan rahasia di server backend Anda
  • Menggunakan variabel lingkungan di sisi server
  • Meneruskan panggilan API melalui backend Anda untuk menyembunyikan kunci
  • Menggunakan token berumur pendek yang diterbitkan oleh server Anda

Apa yang Sebaiknya Anda Lindungi?

Obfuskasi VM ideal untuk:

  • Algoritma milik sendiri dan logika bisnis
  • Kode validasi lisensi (pemeriksaan sisi klien)
  • Anti-tampering dan pemeriksaan integritas
  • Logika game dan mekanisme anti-cheat
  • Implementasi fitur premium
  • Logika perhitungan harga

Build dan rilis

Obfuskasi keluaran Anda yang sudah dikompilasi dan dibundel sebagai langkah build terakhir; lihat Kompatibilitas Runtime untuk pipeline build. Ukur biaya preset yang Anda pilih pada kode Anda sendiri, seperti dijelaskan di Memilih Preset. Jalankan pengujian fungsional terhadap build pengujian, lalu validasi artefak rilis terpisah yang benar-benar Anda kirim, seperti dijelaskan di Pengujian dan CI.