Mengamankan Source PHP

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.

 

Pilih Blackberry atau Apple iOS daripada Android

cakep banget

Jika anda seorang pengembang aplikasi mobile dan ingin memilih mana yang lebih menguntungkan, sampai sekarang menurut saya, pilihlah platform iOS (iPhone dan iPad) atau Blackberry daripada Android.

Ya, banyak yang akan argumen bahwa platform android adalah open, beberapa berargumen dokumentasinya paling mantab dan librarynya bertebaran, dan menaruh aplikasi di Google Play prosesnya sangat mudah dan nyaris tanpa review dari google (Pantes kalau banyak worm/virus bertebaran di platform android, karena emang nyaris tanpa kontrol).

Masalahnya cuman satu, Jika anda di Indonesia, anda tidak bisa membuat aplikasi anda berbayar di Google Play. Account merchant tidak untuk orang Indonesia. Saya menganggap hal ini sangat arogan oleh google, karena sederhana saja, kita sebagai user, bisa membeli aplikasi di Google Play, tetapi developer Indonesia, tidak boleh menerima bayaran dari google untuk aplikasi berbayar. Ya, ada yang akan berargumen bisa dapat revenue dari advertising. Tapi iklan dan banner akan membuat aplikasi kita tampak jelek.

Pendapat saya, silahkan mempelajari platform android, tapi hanya sebatas mengenal saja, jangan buang waktu anda untuk mengembangkan di platform ini sementara Google sendiri masih tidak terbuka untuk orang Indonesia. Lebih baik menghabiskan waktu mengenal platform Apple iOS dan Blackberry yang lebih fair dan terbuka kepada orang Indonesia.

Blackberry, yang memang device lamanya bermasalah dengan performa, secara platform lebih terbuka. Apple, walaupun sedikit cerewet dalam proses submit aplikasi, sudah memiliki store Indonesia dan merchat account pun mudah.

Platform android memang mudah, API yang intuitif, murah dan hanya bermodal otak, library open source, editor  gratis dan handset murah untuk mengembangkan, tetapi pada akhirnya akan sangat merepotkan untuk  melakukan monetize karena pada akhirnya, anda akan dipaksa oleh google untuk menjadi penyedia banner saja.

 

 

 

Bagaimana Menentukan Biaya Proyek

SIMETRI

Ketika ditanya: “BERAPA?” dalam bernegosiasi mengenai sebuah proyek, biasanya kita akan berpikir dengan cepat, “Rp.XXX”. Tetapi, ketika proyek berjalan, kemudian kita akan kesulitan di tengah atau akhir proyek karena kekurangan dana atau permintaan dari client terlalu banyak.

Dari mengerjakan project di beberapa tahun terakhir, saya akan berbagi pengalaman mengenai bagaimana menentukan biaya proyek.

Read On…

Back to Indonesian

Hello readers,

My blog are now back in Indonesian, for no special reason. ;) Welcome back Indonesian ;)

Blackberry Color Picker

Color Picker preview

Upon finishing my blackberry application, PhotoCard (it is an application to manipulate photo, add photo filters and text and then share it), there are many requests posted to my email asking for options to change the text color. Blackberry JDE don’t have Color picker field, so I have to create it from scratch. And there’s no blackberry JDE library for the color picker field. Fortunately I found some good codes in Nokia developer website and I just need to convert some of the codes to JDE codes.

So here I share the code, it is already up on the github for you to use. Have fun ;)

Dear Admin: “Please Limit POST/GET request Length”

First of all, I would like to say: Happy new year ;) Haha, this is my first post in 2012 and my first post will began with messages to all admins around the world, to limit their request length. Why? Because it can lead to DOS attack, using a simple POST request with specially crafted messages that can led to huge amount of CPU usages.

I don’t have to explain the background behind it, because many articles has done a great job of explaining. Here’s the related articles explaining the problem:

The most important is the third link, because many sites are using PHP, and so many sites are not yet updated into PHP 5.3, especially shared hosting sites.

Mandiri Transaction Downloader

Following the BCA transaction downloader script, my friend asked me to do the Mandiri transaction downloader script.

So, here it is, ofcourse it is in python. The reason I keep doing this in python is that so other user can use and learn python too. Since it is not as suck as the other scripting language and never let me down ;)

Just change the parameter inside the script:


#Ganti username dengan username anda
USERNAME = "user123"

#Ganti pin dengan pin anda
PIN = "123123"

#Ganti pake norek anda
NOREK = "1111111111111"

#Hari
DAYS = 7

Its so self explaining, below is the full script

http://www.ferdianto.com/media/mandiri.py

Edit Your Email Before Reply or Forward In Blackberry

Having trouble editing e-mail prior to reply or forwarding? Or perhaps your colleagues at mailing-list is flaming you because of top posting? No more excuses now, there is apps for Blackberry that allow you to edit / inline editing email messages for reply or forward

Try EmailEdit Blackberry Apps. The price is less than a dollar, but it works great.

It even can pull HTML email, and format it as text.