Sebuah website tidak hanya menampilkan halaman depan saja, tetapi juga menyimpan berbagai file penting dan struktur direktori di server. Jika file sensitif atau isi direktori dapat diakses publik, hal ini bisa menjadi celah keamanan yang berbahaya. Salah satu cara sederhana namun efektif untuk mencegahnya adalah dengan mengatur perlindungan melalui konfigurasi .htaccess
.
Mengapa File dan direktori listing Perlu Dilindungi?
Banyak website tanpa disadari menyimpan file dokumentasi seperti readme.md, readme.rst, atau license.txt, serta file konfigurasi penting seperti .env atau .htpasswd. Walaupun file ini tidak mempengaruhi tampilan website, jika terbuka ke publik dapat membocorkan informasi versi, struktur sistem, hingga kredensial sensitif.
Hal serupa juga berlaku pada file backup (.zip, .sql, .rar, dll.) yang tidak sengaja ter-upload ke server. Jika dapat diakses publik, file tersebut bisa dimanfaatkan pihak tidak bertanggung jawab untuk menyerang website. Selain itu, directory listing yang dibiarkan aktif juga berbahaya. Dengan directory listing, pengunjung bisa langsung melihat isi suatu folder di server hanya dengan membuka alamatnya. Kondisi ini memberi informasi tambahan tentang struktur website, nama file, hingga potensi file sensitif yang seharusnya tidak terekspos.
Solusi 1: Lindungi File dengan .htaccess Jika menggunakan server Apache, kita bisa menambahkan aturan pada .htaccess untuk mencegah akses langsung ke file tersebut.
Solusi 2: Menonaktifkan Directory Listing Selain melindungi file sensitif, hal lain yang sering terlewat adalah directory listing. Jika directory listing aktif, siapa pun bisa melihat isi folder di server hanya dengan mengakses alamatnya secara langsung. Contoh: mengakses https://domain.com/assets/ akan menampilkan daftar folder atau file yang ada di dalamnya. Sekilas terlihat sepele, namun kondisi ini bisa membocorkan struktur website dan memberi informasi berharga bagi pihak yang berniat jahat. Contoh konfigurasi dasar untuk kasus diatas sebagai berikut:
#Nonaktifkan directory listing
Options -Indexes
#Proteksi file sensitif & file backup/arsip
<FilesMatch "\.(env|git|htaccess|htpasswd|md|rst|zip|tar|gz|tgz|rar|7z|sql|bak|old|backup)$|^(config\.php|config-sample\.php|composer\.(json|lock)|package\.json|yarn\.lock|readme\.(html)|license\.txt|licen[sc]e\.txt|changelog\.txt)$">
Require all denied
</FilesMatch>

Setelah aturan ini aktif, jika seseorang mencoba membuka folder secara langsung, server akan menampilkan pesan 403 Forbidden. Sementara itu, file yang dipanggil dari script (misalnya CSS atau JavaScript di folder assets) tetap dapat berjalan normal. Dengan begitu, Anda tidak hanya melindungi file sensitif, tetapi juga mencegah orang asing melihat isi direktori website Anda.
Penutup
Mengamankan file sensitif dan menonaktifkan directory listing adalah langkah dasar yang sering dilupakan. Dengan konfigurasi sederhana di .htaccess
, kita bisa menutup celah keamanan dan mencegah kebocoran data yang berbahaya.
Ingat, keamanan website tidak hanya soal aplikasi yang digunakan, tapi juga bagaimana server dan file-file di dalamnya dikelola. Semakin ketat aturan akses file, semakin kecil pula peluang website diretas.
Sebagai tambahan, biasakan untuk rutin mengecek struktur server dan memastikan tidak ada file atau folder yang terbuka ke publik. Langkah kecil ini akan sangat membantu menjaga website tetap aman dan andal.