Tips to Develop A Good Web Application

*Sampai botak memikir hehehe...aku kagum dengan bakat steve jobs and belajar apa yang baik padanya, but i am totally hate yahudi

Aku nak kongsi tips-tips yang aku perolehi berdasarkan pengalaman sendiri dan juga pengalaman orang lain.

Perkara perlu pembangun sistem aplikasi web ambil tahu.

1) Pastikan web server (Apache) telah melaksanakan konfigurasi yang selamat

2) Pastikan Application server (PHP) telah melaksanakan konfigurasi yang selamat juga

3) Pastikan Database Server (mysql / postgresql) turut telah melaksanakan konfigurasi yang selamat juga

4) Pastikan semasa pembangunan sistem atau naiktaraf sistem, jangan sekali-sekali lakukan pada host server yang sedang live kerana ini mengundang kepada masalah berikut :
 - serangan hackers yang mudah sebab aplikasi dibangunkan tidak sepenuhnya bersedia untuk live
 - pengguna sistem akan merasa terganggu dan sakit hati sebab asyik berubah sahaja sistem yang sedang digunakan mereka pada masa tu.

5) Semasa membangunkan sistem, laksanakan di server ujian sebelum di transfer kepada server live. Pastikan server ujian mempunyai konfigurasi kawalan keselamatan web server dan application server yang sama seperti server sebenar bagi mengelakkan fungsi sistem dibangunkan tidak dapat dilaksanakan di server live nanti

6) Kenalpasti keperluan perisian sokongan sebelum membangunkan sistem aplikasi bagi memastikan proses migrasi kepada server sebenar lebih mudah.
- kenalpasti konfigurasi, jenis dan versi web server
- kenalpasti konfigurasi, jenis dan versi application server
- kenalpasti konfigurasi, jenis dan versi database server
- kenalpasti module dan perisian sokongan dari segi jenis dan versi bagi memastikan sistem berfungsi dengan baik (cth : mod_ssl, phpmyadmin)

7) Jangan sesekali suka menggunakan nama fail yang mudah dikenali seperti :

- admin_edit.php
- admin_delete.php

Ini kerana nama tersebut mudah dikenali di seluruh dunia. Cuba berikan nama bersesuaian dan lebih bersifat lokaliti cth :

- ptadbir_kemaskini.php
- ptadbir_padam.php

Nama mengikut lokaliti mengurangkan risiko nama fail dan fungsinya dikenali hackers kerana kebanyakan mereka memang tau berbahasa inggeris sebab belajar ICT ni semua rujukan kebanyakannya dalam bahasa inggeris. Namun kena ingat, orang malaysia pun dah pandai hack...so fikirkanlah nama bersesuaian yang susah orang lain untuk kenalpasti fungsi fail tersebut TAPI...jangan pula sampai pembangun sistem sendiri tak tahu...

8) Jangan sesekali suka meninggalkan fail backup di dalam folder yang akan diletakkan di dalam host server live. Begitu juga dengan fail untuk kegunaan restore database barangkali ada dalam server live. Contohnya :

- admin_edit2.php
- admin_delete3.php
- sistemabc.sql

Langkah ini mengundang risiko paling bahaya kepada sistem anda kerana kemungkinan fail tersebut tidak ditetapkan kawalan keselamatan yang ketat kerana ianya tidak bersedia untuk paparan live server dan ini mengundang hackerz untuk menjadikannya sebagai batu loncatan bagi membolehkan menceroboh server tersebut seterusnya melakukan kerja tak sepatutnya pada sistem tersebut.

9) Apabila membangunkan sistem yang mempunyai tahap capaian yang ketat, maka pemerhatian terperinci perlu dibuat kepada kaedah kawalan capaian kepada data di dalam setiap page yang dibina. Contoh algorithm :

if session(validuser) = true
  paparkan data dikehendaki
else
  redirect ke page login bagi memaksa pengguna login dahulu
endif

10) Penggunaan session atau cookies perlulah berhati-hati dan pastikan datanya di encypt agar tidak dapat diserang menerusi man in the middle attack. Validation setiap page perlu dibuat bagi memastikan ianya mematuhi ketetapan sistem berdasarkan tahap capaian.

11) Jangan sesekali suka dan terlalu banyak menggunakan include dalam satu-satu page. Ini mengundang risiko berikut jika tidak dikawal sebaiknya :
- serangan hackerz menerusi include injection kepada page include yang tidak dikawal tahap capaian
- memperlahankan akses dan proses kepada page tersebut. mengundang kebosanan pengguna gunakan sistem

12) Minimakan penggunaan javascript dan sebolehnya diringkaskan codingnya. Begitu juga coding server side di setiap page perlu diringkaskan sebaik mungkin agar proses page dapat dikurangkan dan lebih cepat. percayalah!...ia memang amat membantu

13) Kawal juga jenis fail dan saiz fail yang ingin di upload ke dalam server. Ini kerana tanpa ada kawalan yang baik akan mengundang serangan hackerz yang amat mudah dan juga turut menyebabkan server menjadi slow kemungkinan serangan DDOS kepada upload page tu. Selain tu tiada penetapan saiz fail bakal menyebabkan pengguna akan mengalami respon sistem yang teramat perlahan, Cuba gunakan kaedah pecah kecil fail sebelum di hantar kepada server.

14) Bagi kemasukan data yang banyak sampai 2-3 page borang manual dan dilaksanakan dalam sistem yang besar penggunanya akan menyebabkan sistem terasa amat perlahan kesudahannya, percayalah. Sebaiknya pecah kecil mengikut subtopik pada borang tersebut dan kemaskini secara runcit ke dalam server. Ini bagi mengurangkan proses penghantaran data yang terlalu besar sekaligus kepada server secara serentak kepada semua pengguna pada satu-satu masa. Pecah kecil akan membantu mengurangkan packet data yang diproses seterusnya melajukan akses kepada sistem

15) Bagi pelaksanaan web sistem, janganlah melaksanakannya mengikut flow sistem client server seperti ada satu sistem tu...Bina interface yang user friendly dan mudah dicapai dalam 1 muka surat tanpa perlu scroll panjang ke bawah serta mudah nak mencapai fungsi-fungsi tertentu dalam sistem. Kaedah HCI (Human Computer Interface) ni memang dah jadi topik utama dalam ijazah atau diploma ICT sekarang ni...


16) Pastikan form page perlulah dibuat validation bagi menjadikannya zero error input daripada pengguna. Make it as perfect as possible supaya nanti pembangun sistem tk perlu pening kepala nak kena ubah database ikut jalan belakang.

* Aku rasa setakat ni dulu apa yang aku teringat untuk dikongsi bersama. Jika rakan-rakan ada cadangan tambahan lain pada artikel ni amatlah dialukan.

~ Be a Creator Not a User ~

Ulasan