Encoding PHP

Ada kalanya kita sebagai programmer PHP butuh untuk mendistribusikan dan melakukan instalasi script PHP kita di server client, sedangkan kita butuh untuk melindungi/merahasiakan kode sumber / algoritma kita dari client.

Hal ini kejadian juga di perusahaan saya, ketika perusahaan harus mendeploy aplikasi akuntansi berbasis web kami (iCount) di server client. Kami dihadapkan pada beberapa opsi.

  • Obsfucator
    Akan mengenkripsi kode sumber menjadi kode sumber yang sulit dibaca. Banyak solusi gratisnya, tetapi permasalah utama adalah sulitnya untuk menggabungkan source yang terobsfuscate dengan source existing. beberapa nama fungsi/class/variabel akan berubah, sehingga proses integrasi dan encodingnya lama. Tidak cocok untuk kami.
  • Zend Guard
    Merupakan solusi pabrikan resmi dari PHP, hasilnya terkompilasi dengan baik dan tanpa instalasi software atau ekstensi di server. Semua interpreter dan instalasi PHP akan dapat langsung membaca hasil kompilasi Zend Guard. Problemnya hanya satu: Harga, dengan harga US$600 kami rasa masih terlalu mahal untuk ukuran project yang akan kami deploy.
  • ionCube PHP Encoder
    ionCube PHP Encoder

    Solusi yang mirip dengan Zend Encoder, perbedaan hanya beberapa, yang ini 3rd party, harus menginstall ekstensi di server untuk dapat membaca encoder. Pertama saya pesimis dengan solusi ini dan cenderung ke Zend Guard, tetapi setelah melihat ada versi trial, dan fitur online encoding yang berbasis credit, jadi untuk 10 credit itu sama dengan $1, jadi pas di budget project kami.
    Hasil online encoder
    Ditambah lagi, fitur online encoding ini membuat kami bisa memilih mana file yang penting untuk di encode, dan mana yang tidak perlu, sebagai contoh, aplikasi kami yang berbasis CodeIgniter, kami hanya akan encode script untuk model, library, helpers dan controllers saja, sedang untuk view bebas edit, jadi ganti tampilan bebas dan tidak bolak balik encode.
    Total yang kami habiskan untuk encode aplikasi akuntansi online sekitar $5.5 setelah dipilih2.

Jadi pilihan perusahaan saya jatuh kepada ionCube PHP Encoder sebagai proteksi algoritma dan source PHP ketika harus melakukan deploy ke client. Karena selain murah dan fleksibel, semua fitur sudah komplit. Hasil skrip encoding sebagai berikut:

Hasil skrip encoding

Tetapi, tetap harus menyesuaikan dengan kebutuhan, jika dengan obsfuscator sudah cukup, ya gunakan obsfuscator. Solusi encoding ke versi biner hanya butuh jika kecepatan, fleksibilitas dan keamanan yang utama. Tinggal developer yang menyesuaikan dengan budget dan kemampuan finansial.