Menonaktifkan Server Side Includes (SSI) pada web server Apache dilakukan dengan menghapus modul include_module dari konfigurasi direktori atau menonaktifkan opsi Includes pada direktif Options. Langkah ini krusial untuk mencegah kerentanan keamanan seperti eksekusi kode jarak jauh (RCE) dan manipulasi injeksi perintah melalui file HTML yang tidak disengaja.
Secara default, Apache mendukung SSI melalui modul mod_include. Jika tidak digunakan dalam aplikasi web Anda, mematikan fitur ini adalah praktik pengerasan server (server hardening) standar yang wajib diterapkan untuk menutup celah eksploitasi.
Metode Menonaktifkan SSI di Apache
Terdapat dua metode utama untuk menonaktifkan SSI pada server web Apache, yakni melalui konfigurasi blok direktori di file virtual host atau dengan menonaktifkan modul utamanya secara global.
1. Melalui Konfigurasi Options (Tingkat Direktori/Virtual Host)
Metode ini menonaktifkan SSI untuk direktori tertentu tanpa harus mematikan modul Apache secara keseluruhan. Ubah konfigurasi pada file virtual host Anda (biasanya berada di /etc/apache2/sites-available/ pada Ubuntu/Debian atau /etc/httpd/conf.d/ pada CentOS/RHEL).
<Directory /var/www/html>
# Hapus opsi 'Includes' dari baris Options
Options -Includes FollowSymLinks Indexes
AllowOverride None
Require all granted
</Directory>
Pastikan tanda minus (-) disematkan di depan kata Includes untuk mencabut izin eksekusi SSI pada direktori tersebut.
2. Menonaktifkan Modul mod_include Secara Global
Jika Anda ingin mematikan SSI sepenuhnya untuk seluruh domain di server, Anda dapat menonaktifkan modul include pada sistem operasi berbasis Debian/Ubuntu menggunakan perintah terminal:
sudo a2dismod include
sudo systemctl restart apache2
Untuk sistem berbasis Red Hat/CentOS, Anda perlu menyunting file konfigurasi utama httpd.conf atau menghapus baris pemuatan modul:
# LoadModule include_module modules/mod_include.so
Tabel Matriks Perintah Konfigurasi SSI Apache
| Metode | Sistem Operasi | Perintah / Konfigurasi | Dampak |
|---|---|---|---|
| Pencabutan Opsi | Ubuntu / CentOS | Options -Includes |
SSI nonaktif pada direktori spesifik |
| Disable Modul (Debian) | Ubuntu / Debian | sudo a2dismod include |
Modul mod_include dicopot global |
| Komentar Modul (RHEL) | CentOS / RHEL | #LoadModule include_module |
Modul tidak dimuat saat startup Apache |
Langkah Verifikasi Pengujian Keamanan
Setelah melakukan perubahan konfigurasi, pastikan untuk menerapkan ulang pengaturan server dan menguji apakah SSI benar-benar sudah nonaktif.
- Simpan file konfigurasi yang telah diubah.
- Uji sintaks konfigurasi Apache untuk menghindari error:
atausudo apache2ctl configtestsudo httpd -t - Restart layanan Apache:
(atausudo systemctl restart apache2httpdpada CentOS). - Buat file uji dengan ekstensi
.shtmlberisi sintaks SSI standar seperti<!--#echo var="DATE_LOCAL" -->. Jika SSI berhasil dimatikan, browser akan menampilkan teks mentah tersebut alih-alih mengeksekusi tanggal sistem.
Troubleshooting & Tips Lapangan
Jika setelah konfigurasi SSI masih berjalan, periksa apakah ada file .htaccess di dalam direktori web root yang mendefinisikan ulang perintah Options +Includes. Perintah dalam .htaccess sering kali menimpa konfigurasi utama pada blok <Directory> jika direktif AllowOverride mengizinkannya.