################################################################### MENGURANGI SECURITY HOLES PADA PHP PROGRAMMING Author : KillFinger Email : killfinger@yahoo.com IRC : #SecretColony, #Level9-Team @DAL.net SecretColony Labs N Research Group. ################################################################### Applikasi web telah menunjukkan kenaikkan yang signifikan dalam meramaikan dunia internet. PHP, adalah salah satu applikasi web yang paling banyak digunakan. Ada banyak applikasi PHP yang sudah jadi alias tinggal setting dan bisa langsung dipakai tanpa memerlukan pemrograman lagi bagi si webmaster. Misalnya PHPMyAdmin, PHPShop and FreeTrade, PHPNuke, dlsb, yang mengandung beberapa security holes yang sudah kita ketahui bersama dampaknya. Nah, apakah kamu mau situs kamu hanya menggunakan applikasi yang instant itu sehingga mengenyampingkan potensi kamu dalam programming?. Kalau kamu adalah type orang yang seperti itu, cukup hentikan bacanya sampai disini saja. Tapiii..... kalau kamu type orang yang merasa tidak puas hanya menggunakan program buatan orang lain dan lebih suka membuat kode program PHP sendiri, ada baiknya kita belajar sama2. Baiklah, kali ini saya akan manyampaikan beberapa step dalam membuat kode PHP sehingga kode kita tersebut aman dari security holes yang mungkin saja terjadi. 1> Hindari penggunaan variable dalam mengakses file perhatikan contoh berikut: // $lib_dir adalah variable konfigurasi tambahan include($lib_dir . "functions.inc"); atau yang lebih buruk lagi: // $page adalah veriable dari URL include($page); User dapat saja mengatur variable $lib_dir or $page sehingga menampilkan file /etc/passwd atau secara remote memasukkan malicious code ke http://www.web-kamu.com/script-anu.php sehingga mampu menghapus file, memodifikasi database atau merubah beberapa nilai variable dalam status authentikasi. a> Apa yang harus dilakukan Kode2 yang mewakili beberapa fungsi berikut perlu kamu perhatikan: - readfile - fopen - file - include - require b> Perbaikan yang mungkin dilakukan - Hindari menggunakan variable dangan nama file. variable $lib_dir diatas dapat diganti dengan nama yang telah ditentukan PHP define function. - Check nama file sehingga berbeda dengan nama file yang valid, misal: $valid_pages = array( "apage.php" => "", "another.php" => "", "more.php" => ""); if (!isset($valid_pages[$page])) { // Abort the script // Kamu bisa juga membuat log message disini die("Invalid request"); } - Jangan mempercayai global variable untuk memastikan variable tidak bisa di set secara malicious. - Gunakan konfigurasi allow_url_fopen dan open_basedir variable untuk membatasi lokasi pembukaan file. Bersambung ...... ke php2(Escape character pada SQL statement) *NOTE: PHP adalah interpreter language yang syntaxnya hampir sama dengan C language. Kalau kamu sudah familier dengan salah satunya maka kemungkinan kamu tidak akan kesulitan dalam menggunakan keduanya. ;> Artikel ini adalah artikel bersambung. Semoga berguna untuk meningkatkan security pada code PHP kita dan meningkatkan pengetahuan programming kita. Salam buat A_BlAcK-LisT, Acetosal, jhon angga, ryan_the, ucoxxx, AcCezZdENieD dan KIDS_KIDS. Special buat teman2 yang tidak bisa disebutkan satu persatu di #SecretColony, #Level9-Team @t DAL.Net. Best Regs KillFinger