Keselamatan pada Sistem PHP & MySQL
PHP bukanlah ilmu dan teknologi baru bagi kalangan developer laman web. Berjuta-juta laman web di dunia maya telah disokong oleh PHP. Pada zaman kini,semakin banyak penggodam (hacker) yang cuba menggodam sistem PHP terutama yang menggunakan database MySQL. Namun, hal ini tidak boleh dijadikan penanda aras bahawa PHP adalah sistem yang terdedah daripada serangan hacker. Namaun begitu, PHP juga mempunyai security yang bagus jika developer boleh menggunakan security dengan sebaiknya. Bagaimana caranya?
Keselamatan .htaccsess
htaccess adalah sebuah file konfigurasi yang diletakkan pada direktori root sistem aplikasi laman web. Htaccess boleh dipakai untuk konfigurasi khusus aplikasi laman web kita, contohnya, untuk pergi ke laman web tertentu atau menyekat akses laman web yang membahaya. Sebagai ciri keselamatan, .htaccess dapat kita manfaatkan untuk menyekat folder-folder di dalam sistem laman web kita. contohnya:
1 Order deny,allow
2 deny from all
Selain menggunakan kaedah diatas, kita boleh juga menggunakan .htaccess untuk melakukan manipulasi file PHP yang kita gunakan. Contohnya, kita mempunyai laman web berita, dan untuk memaparkan berita tersebut digunakan file "http://mywebsite.com/news.php?id=(id berita)". Untuk memanipulasi menjadi "http://mywebsite.com/news/berita-id" kita boleh menggunakan coding dibawah menggunakan .htaccess pada root folder utama laman web:
<IfModule mod_rewrite.c>
RewriteRule ^news/([^/]*)/([^/]*)/?$ /news.php?id=$2
</IfModule>
SQL Injection
Serangan yang paling disukai oleh hacker dan juga penggodam database adalah SQL Injection. Biasanya berlaku pada web berasaskan PHP dan MySQL. Kaedah SQL Injection yang dipakai oleh hacker untuk menggodam data yang berada di dalam laman web yang tidak dilengkapi dengan skrip keselamatan khusus.
Langkah untuk mengelakkan penggodam database melalui SQL Injection adalah menggunakan fungsi mysql_real_escape_string () untuk mengelakkan string tertentu yang dipakai hacker pada saat menggodam query database sistem. Berikut adalah contoh penggunaan fungsi mysql_real_escape_string ():
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['pass']);
$query = "SELECT * FROM user WHERE username = '$username'";
$result = mysql_query($query);
Terdapat banyak lagi cara yang menggelak serangan dari sql injection, anda boleh mengetahui tentang sql injection di http://www.w3schools.com/sql/sql_injection.asp
Perlindungan session ID
Session ID hijacking boleh menjadi masalah kepada laman web yang menggunakan PHP. PHP session tracking component menggunakan unik ID pada setiap penguna.Namun begitu, jika ID ini diketahui oleh pengguna lain menyebabkan orang lain boleh hijack user session dan mendapat maklumat peribadi pengguna. Sebagai contoh, walaupun selepas pengguna telah disahkan dan berikan session ID, anda perlu mengesahkan semula apabila pengguna ingat menukar maklumat yang sangat sensitif, seperti kata laluan. Jangan sekali-kali membenarkan pengguna sesi disahkan untuk memasukkan kata laluan baru tanpa memasukkan kata laluan lama mereka. Anda juga harus mengelak daripada memaparkan data benar-benar sensitif seperti nombor kad kredit.
if ($_SESSION['password'] == $userpass) {
// do sensitive things here
}
Kod di atas tidak selamat, kerana kata laluan yang disimpan dalam teks jelas dalam pembolehubah session. Sebaliknya, gunakan kod lebih seperti ini:
if ($_SESSION['sha1password'] == sha1($userpass)) {
// do sensitive things here
}
Anda boleh mendapatkan maklumat lebih detail tentang session ID di http://www.sitepoint.com/php-security-blunders/
Pihak Two Sigma Technologies amat mengambil berat mengenai isu keselamatan dalam pengaturcaran PHP, dengan itu kami memperkenalkan sebuah kursus yang sentiasa mendapat sambutan hangat daripada para peserta, iaitu kursus PHP Secure Programming. Kursus ini akan mendedahkan kepada peserta mengenai teknik-teknik godaman termasuklah teknik SQL-Injection beserta cara-cara mengatasinya dengan menulis kod PHP yang selamat.
Sekiranya anda berminat untuk kami mengendalikan Kursus PHP Secure Programming di tempat anda, sila hubungi kami di talian 03-61880601 ataupun menerusi emel sales@2-sigma.com untuk mendapatkan kandungan kursus atau keterangan yang lebih lanjut. Selain itu anda juga boleh melawati http://www.training.2-sigma.com/ untuk mendapatkan tarikh-tarikh kursus yang terdekat.
0 comments:
Post a Comment