Konfigurasi Apache SHTML dan Server Side Includes (SSI)

Server Side Includes (SSI) adalah mekanisme yang memungkinkan penyisipan konten dinamis ke dalam dokumen HTML yang sudah ada tanpa memerlukan kerangka kerja aplikasi penuh. SSI sangat berguna untuk menyisipkan elemen umum seperti header, footer, navigasi, dan tanggal ke dalam halaman statis menggunakan ekstensi file .shtml.

Langkah Konfigurasi Apache untuk SHTML

Untuk mengaktifkan Server-Side Includes pada file berekstensi .shtml, server web Apache memerlukan modul mod_include, pengaktifan Options +Includes, serta pendefinisian filter atau tipe media agar file tersebut diproses oleh server.

1. Mengaktifkan Modul dan Opsi Direktori

Pastikan modul mod_include aktif pada server Apache Anda. Di dalam blok konfigurasi direktori httpd.conf atau berkas .htaccess, tambahkan opsi untuk mengizinkan includes:

<Directory "/var/www/html">
    Options +Includes
    # Gunakan IncludesNOEXEC jika tidak memerlukan eksekusi perintah shell (#exec)
</Directory>

2. Menambahkan Direktif AddType atau AddOutputFilter

Anda harus memberi tahu Apache bahwa file dengan ekstensi tertentu harus diurai untuk arahan SSI. Hal ini dilakukan menggunakan direktif AddType atau AddOutputFilter:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Tabel Parameter Konfigurasi Apache SSI

Direktif / Opsi Fungsi Utama Catatan Keamanan / Praktik Terbaik
Options +Includes Mengizinkan pemrosesan SSI pada direktori terkait. Wajib diaktifkan agar direktif SSI dapat dibaca oleh server.
Options +IncludesNOEXEC Mengaktifkan SSI tetapi menonaktifkan perintah #exec. Direkomendasikan untuk menghindari risiko keamanan eksekusi skrip eksternal.
AddOutputFilter INCLUDES .shtml Memasang filter INCLUDES pada file ber-ekstensi .shtml. Metode standar yang diimplementasikan oleh filter Apache.
AddType text/html .shtml Menetapkan tipe MIME text/html untuk ekstensi .shtml. Memastikan browser membaca dokumen sebagai halaman HTML standar.
XBitHack On Memeriksa bit eksekusi file HTML biasa untuk SSI. Alternatif jika ingin menerapkan SSI pada file ber-ekstensi .html tanpa mengubah ekstensi file.

Praktik Keamanan SSI

Penggunaan direktif #exec di dalam file SSI mendatangkan risiko keamanan yang signifikan karena memungkinkan eksekusi perintah sistem operasi secara langsung dari web. Oleh karena itu, sangat disarankan menggunakan IncludesNOEXEC alih-alih Includes penuh kecuali jika eksekusi perintah tersebut benar-benar dibutuhkan dan dibatasi dengan ketat.