Cara Mengatasi File Terekspos Publik di WordPress

Beberapa hari lalu, saya membuka dashboard Wordfence di situs saya dan menemukan notifikasi dengan label Critical yang langsung bikin saya agak panik:

Publicly accessible config, backup, or log file found: .user.ini

Jujur, awalnya saya tidak tahu file .user.ini itu apa. Yang saya tahu, label “Critical” di Wordfence bukan sesuatu yang bisa diabaikan begitu saja. Maka saya langsung lakukan troubleshoot peringatan ini. Pertama-tama kita cari tahu dan dalami file ini.


Apa Itu File .user.ini?

File .user.ini adalah file konfigurasi PHP yang bekerja di level direktori. Fungsinya mirip seperti php.ini, tapi hanya berlaku untuk folder tempat file itu berada, dalam hal ini, folder root WordPress.

File ini bukan file bawaan WordPress. Dalam kasus saya, file ini dibuat secara otomatis oleh plugin Wordfence sendiri saat mengaktifkan fitur Web Application Firewall (WAF).


Isi File .user.ini Saya

Setelah saya buka file tersebut, isinya hanya ini:

; Wordfence WAF
auto_prepend_file = '/var/www/xxxxx/wordfence-waf.php'
; END Wordfence WAF

Penjelasan singkat:

Baris auto_prepend_file memerintahkan PHP untuk menjalankan file wordfence-waf.php sebelum file PHP manapun dieksekusi. Inilah cara Wordfence WAF “mencegat” request berbahaya sebelum sampai ke WordPress.


Apa Bahayanya Jika File Ini Bisa Diakses Publik?

Meski isi file saya tidak mengandung password atau kredensial, ada dua informasi yang tidak seharusnya diketahui orang lain:

1. Path direktori server terekspos

/var/www/xxxxx/

Penyerang bisa mengetahui struktur folder server saya. Informasi ini berguna untuk serangan seperti path traversal atau local file inclusion.

2. Plugin keamanan yang digunakan diketahui

Penyerang tahu saya menggunakan Wordfence. Dengan informasi ini, mereka bisa mencari exploit atau teknik bypass yang spesifik menargetkan Wordfence.

File ini tidak boleh bisa diakses publik, meskipun isinya tidak terlalu berbahaya.


Cara Mengatasinya

Solusinya adalah memblokir akses publik ke file .user.ini. File ini tidak perlu dihapus karena masih dibutuhkan oleh Wordfence WAF. Cara pemblokirannya berbeda tergantung web server yang kamu gunakan, pada kasus saya, saya menggunakan web server Nginx.


Langkah 1 — Masuk ke konfigurasi Nginx

Akses via SSH:

# nano /etc/nginx/sites-available/fileconfanda.conf

Langkah 2 — Tambahkan rule berikut di dalam blok server {}

// Blokir akses ke file konfigurasi sensitif
location ~ /\.(user\.ini|htaccess|htpasswd|git) {
    deny all;
    return 404;
}

Penjelasan:

BagianKeterangan
location ~Mencocokkan URL menggunakan regex (case-sensitive)
/\.Menargetkan semua file yang diawali titik (dotfiles)
deny allMenolak semua request ke file tersebut
return 404Mengembalikan 404 agar penyerang tidak tahu file itu ada

Saya gunakan return 404 bukan return 403, ini teknik agar penyerang tidak bisa memastikan apakah file tersebut benar-benar ada di server.

Langkah 3 — Test konfigurasi Nginx

Sebelum reload, selalu test dulu untuk memastikan tidak ada syntax error:

# nginx -t

Jika ada error, troubleshoot dulu sebelum lanjut ke langkah berikutnya.

Langkah 4 — Reload Nginx

# systemctl reload nginx

Langkah 5 — Verifikasi dari browser

Akses langsung dari browser:

https://rafiharlianto.web.id/.user.ini

Kalau sudah muncul 404, berarti file sudah berhasil disembunyikan dari publik.

Langkah 6 – Verifikasi di Wordfence

Setelah memblokir file, saya kembali ke dashboard Wordfence dan menjalankan ulang scan:

Wordfence → Scan → Start New Scan

Hasilnya? No new issues have been found.


Akhir Kata Rafi…

Rutin cek Wordfence Scanner, banyak masalah keamanan yang tidak terlihat secara kasat mata tapi bisa ditemukan lewat scanner.

File yang dibuat plugin pun bisa jadi celah, kesalahan terbesar kasus ini adalah file yang bocor justru dibuat oleh plugin keamanan saya sendiri.

Blokir akses ke file konfigurasi sejak awal, jangan tunggu ada temuan baru menambahkan proteksi di konfigurasi Nginx.

Tidak semua temuan “Critical” berbahaya, tapi tetap harus ditangani sesegera mungkin.

Semoga artikel ini membantu, apalagi kalau kamu menemukan temuan serupa di Wordfence Scanner pada situsmu. Jika ada pertanyaan, tulis di kolom komentar ya!

Comments

Leave a Reply

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