Apache : Menonaktifkan Fungsi PHP pada Direktori

Pada model webserver dengan Apache, PHP berjalan atas ‘perintah’ Apache. PHP dapat berjalan dengan beberapa mode :

1. mod_php

2. CGI mode

3. FPM mode

PHP akan menjalankan sintaks-sintaks PHP, dan akan memberikan hasil keluarannya sebagai masukan bagi Apache. Apache akan mengeluarkan hasilnya dengan mengirimkan hasilnya pada browser, dengan format HTML.

Sebuah aplikasi berbasis web biasanya memiliki sebuah direktori (folder) tempat upload file. Direktori ini selalu harus dapat ditulisi oleh webserver (apache writable). Karena sifat writable inilah, sebuah uploadable-directory memiliki potensi risiko bahaya serangan inject. Serangan-serangan hacking, pada umumnya akan mengarah lebih dulu pada direktori-direktori sejenis itu. Penyerang melakukan upload backdoor, php-shell atau sejenisnya yang dapat digunakan untuk mengontrol seluruh direktori dan database, pada uploadable directory tersebut. Hal ini yang akan membuat dilema seorang pengelola server. Jika direktori tidak dapat ditulis (not-writable) maka file gambar dan sejenisnya tidak dapat diupload. Namun jika dapat ditulisi, akan menjadi sasaran bagi para penyerang.

Sebenarnya solusi itu sudah ada. Semua webserver menyediakan fitur untuk melakukan disable PHP handler, atau disable handler untuk bahasa pemrograman lainnya, secara khusus pada direktori tertentu. Bagaimana caranya?

1. RemoveHandler PHP melalui httpd.conf ataupun .htaccess

RemoveHandler .php
RemoveType .php

2. php_engine = off pada .htacces

php_flag engine off

Selanjutnya saat sebuah usaha injeksi file secara ilegal itu berhasil, jika berupa file PHP, tidak akan dieksekusi, melainkan justru akan terdownload, atau muncul sebagai teks. Sebagai catatan tambahan, untuk langkah nomer dua (2) tidak dapat dilakukan untuk PHP jenis CGI dan FPM.

Sekedar catatan, buat teman. Meski sepertinya terpantau repost.

Leave a Reply

Your email address will not be published. Required fields are marked *