Catatan: Artikel ini membutuhkan sedikit pengetahuan tentang model security di Unix.
Di server hosting berbasis Spanel, skrip-skrip PHP dan CGI user dapat dijalankan dalam 2 mode, USER atau cgi-USER. Untuk mengeset hal ini, loginlah ke control panel hosting lalu ke Subdomain Manager, lalu klik Prefs pada subdomain yang diinginkan. Akan ada pilihan user CGI.
mode USER
mode ini artinya skrip akan berjalan sama dengan user yang memiliki file-file home dan website Anda. contoh jika user anda adalah t10000 (Anda ssh dan ftp menggunakan username ini) maka dengan user ini pulalah skrip-skrip akan berjalan.
pro
- praktis; umumnya banyak skrip expect/mengharapkan dirinya dapat menulis ke docroot.
con
- kurang secure, jika skrip diexploit, maka exploit dapat dengan mudah menulis ke docroot (yang berarti dapat menciptakan file2 baru seperti skrip, file teks, binary, dll yang dapat langsung diakses dari website dan dieksekusi sebagai skrip php/cgi).
mode cgi-USER
Mode ini artinya skrip akan berjalan dengan user id khusus yang unik untuk tiap user. Contohnya, jika user account adalah t10000, maka skrip akan berjalan sebagai user ‘cgi-t10000’. User khusus ini dimasukkan dalam group ‘t10000’ agar dapat masuk dan membaca docroot Anda. Tapi user ini tidak dapat menulis ke docroot atau di bawahnya (kecuali jika direktori docroot atau di bawahnya telah anda set menjadi 775 atau 777). cgi-USER milik user lain, mis: ‘cgi-t20000’ tidak dapat mengintip ke website milik t10000.
Jadi ini setara dengan setiap klien hosting memiliki user ‘nobody’-nya masing-masing. Tiap ‘nobody’ dari klien hosting yang satu tidak dapat mengganggu ‘nobody’ dari klien hosting yang lain.
pro
- lebih secure. skrip tidak dapat menulis ke docroot, sehingga jika terjadi exploit, si exploit biasanya harus menggunakan direktori publik seperti /tmp dulu, sedikit mempersulit exploit.
con
- kadang skrip tidak bisa berjalan sempurna, karena ada yang berasumsi/mengharapkan dapat menulis ke docroot (contohnya skrip-skrip instalasi aplikasi yang ingin menulis .htaccess atau config.php). Untuk kasus seperti ini, Anda dapat mengubah dulu mode eksekusi menjadi mode ‘USER’ saat instalasi, lalu mengubah kembali ke mode ‘cgi-USER’ yang lebih aman selesai instalasi skrip.
- kadang Anda pun sebagai USER jadi tidak bisa menghapus file/direktori yang dibuat oleh skrip aplikasi Anda, dikarenakan file-file tersebut akan terbuat dengan owner cgi-USER. Untuk menghapus file-file ini, bisa menggunakan skrip aplikasi Anda atau skrip PHP/CGI yang dibuat sendiri, atau dengan melakukan Reset Files Permissions dari control panel hosting.