Keamanan adalah faktor sangat penting dari pengembangan sistem, apapun itu, termasuk sistem yang dikembangkan dengan PHP. Nah, berikut adalah 5 hal yang bisa kamu lakukan biar PHP di server kamu lebih aman.
NB. Cara ini hanya bisa dilakukan kalau kamu punya akses ke server, bukan akses cpanel saja.
1. Menyembunyikan Versi PHP yang terinstall
Salah satu celah yang sebenarnya tidak cukup berbahaya namun bisa menjadi pintu gerbang bagi hacker yaitu versi PHP yang terbuka (dibiarkan bisa dibaca). Biasanya berlaku untuk versi PHP yang lawas yang masih memiliki beberapa bug berbahaya. Nah untuk mengatasinya, silakan buka file php.ini dan ubah setting expose_php menjadi OFF.
[sourcecode]expose_php = off[/sourcecode]
2. Mencegah Remote Code Execution
Remote Code Execution adalah salah satu metode yang jarang dipakai. Sasaran utamanya adalah sistem informasi berbasis PHP yang masih membuka kesempatan bagi hacker yang masuk untuk mengeksekusi perintah yang mereka tempatkan di server mereka. Salah satu jalannya, mereka menggunakan fungsi file_get_contents(). Nah, untuk mencegah hal itu silakan ubah setting allow_url_fopen dan allow_url_include.
[sourcecode]
allow_url_fopen = off
allow_url_include = off
[/sourcecode]
3. Mematikan function berbahaya
Function berbahaya jika disalahgunakan adalah fungsi-fungsi yang memberikan akses untuk menjalankan aplikasi lain, misalnya script bash, python, atau aplikasi lain di sistem. Fungsi-fungsi itu diantaranya, exec, shell_exec, passthru, system, popen, curl_exec, dll. Matikan mereka dengan taruh nama fungsi itu di setting disable_function di php.ini.
[sourcecode]
disable_functions =exec,shell_exec,passthru,system,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,proc_open,pcntl_exec
[/sourcecode]
4. Membatasi Folder PHP yang Bisa Digunakan
Cara ini cukup efektif untuk membatasi gerak hacker yang sudah berhasil mengupload script PHP jahatnya. Kita bisa membatasi darimana saja file PHP yang bisa dieksekusi. Katakanlah, file PHP yang bisa dieksekusi hanya dari folder /home/emka/cms. File PHP dari folder itu saja yang bisa dijalankan.
Caranya, tuliskan nama folder di setting open_basedir di php.ini.
[sourcecode]open_basedir="/home/emka/cms"[/sourcecode]
5. Mengatur Limit PHP
PHP sebenarnya sudah mengatur batas operasionalnya, misalnya terkait ukurang file yang bisa diupload, lamannya skrip PHP bisa dieksekusi, atau waktu maksimal sebuah skrip bisa berjalan memproses data. Semuanya bisa diatur dari file php.ini.
Membatasi ukuran file maksimal yang bisa diupload:
[sourcecode]upload_max_filesize = 2M[/sourcecode]
Membatasi waktu eksekusi sebuah skrip PHP:
[sourcecode]max_execution_time = 15[/sourcecode]
Membatasi waktu setiap skrip dalam mengolah data:
[sourcecode]max_input_time = 30[/sourcecode]
Tentunya proses setting pembatasan PHP ini harus disesuaikan dengan kebutuhan dan hasil benchmark. Idealnya setiap skrip PHP tidak dieksekusi lebih dari 30 detik, kecuali dia merupakan skrip yang menjalankan proses yang kompleks.
Itulah 5 hal yang bisa kita terapkan untuk mengamankan PHP.