PHPSuexec adala istilah yang sering digunakan untuk gambaran menjalankan PHP sebagai CGI dengan suexec. Menjalankan PHP sebagai CGI dengan suexec diyakini lebih aman daripada menjalankan PHP sebagai modul Apache. Berikut sedikit uraian perbedaan antara PHP yang berjalan sebagai CGI suexec dan PHP yang berjalan sebagai modul Apache.
Pada kebanyakan server Apache, PHP berjalan sebagai modul Apache. Hal ini berarti berjalan sebagai user "nobody" atau sebagai user "apache". Dengan begitu, untuk menjalankan file PHP diperlukan permission readable. Yang jadi masalah ialah, hal ini memungkinkan setiap user dapat membaca file PHP, mengambil password dan mengakses database anda.
Celah keamanan seperti ini bisa diantisipasi dengan menjalankan PHP sebagai CGI dengan suexec. Dengan begitu, script PHP anda dijalankan dibawah user/group anda.
Semua file atau direktori tidak lagi membutuhkan permission 777, melainkan hanya membutuhkan permission 755. Bila pada file atau direktory anda terdapat permission 777 malah akan menyebabkan "500 Internal Server Error" ketika mengaksesnya. Jadi menjalankan PHP sebagai CGI suexec boleh dikatakan lebih aman dari pada menjalankan PHP sebagai Apache modul.
Dari uraian diatas dapat disimpulkan, bahwa menggunakan PHP yang berjalan sebagai modul Apache kurang aman daripada menjalankan PHP sebagai CGI karena jika sebagai modul Apache, dijalankan sebagai user/group webserver yang biasanya "apache" atau "nobody", sedangkan PHP berjalan sebagai CGI dengan suexec diaktifkan script php Anda sekarang dieksekusi dibawah user/group. File script php atau direktori yang perlu ditulis tidak perlu lagi memiliki hak akses 777.
Namun masalah terbesar dari PHP / CGI dan suPHP adalah kinerja yang sangat buruk dibandingkan dengan mod_php. PHP-CGI akan membangkitkan proses baru setiap ada request dan akan mati jika request selesai. Berbeda dengan PHP module Apache, dia tidak memulai sebuah proses baru setiap ada request. Akan tetapi dia memiliki suatu proses standalone untuk melayani setiap request.
Sebagai solusinya orang menggunakan PHP-FastCGI. PHP-FastCGI mengeksekusi script PHP anda di bawah user/group sehingga keamanan terjamin, dan tidak membangkitkan proses baru setiap ada request baru selayaknya PHP-CGI. Dalam hal kecepatan dia seperti PHP sebagai module Apache yang memiliki proses standalone untuk melayani setiap request.
Untuk mengetahui apakah server anda memiliki phpsuexec anda bisa mengakses infophp dari browser anda, cari bagian Server API. Jika di situ Apache 2.0 Handler berarti berjalan sebagai Apache Module, jika CGI, maka di server anda PHP berjalan sebagai CGI.
1 comments:
:: matur suwun, matrap tenan artikel.na.. :D
Post a Comment