Celah Keamanan wp-config.php: Memperkuat Keamanan WordPress

Pemberitahuan afiliasi Ver 3.1
Pemberitahuan afiliasi Ver 3.2 (khusus seluler)

Saat wp-config.php dibiarkan terbuka di vi, salinan swap (.swp) yang muncul di folder yang sama pernah bisa dibuka begitu saja lewat alamat web. Kejadian ini benar-benar dipastikan di situs ini pada 2026-09-13, dan salinan itu berisi kata sandi database serta semua kunci keamanan.

Untuk mengamankan wp-config.php, periksa enam hal di bawah ini secara berurutan dari atas.

1️⃣ Apa yang Terjadi jika wp-config.php Terekspos

wp-config.php berisi nama, pengguna, dan kata sandi database, serta 8 kunci keamanan yang mengenkripsi cookie login.

File wp-config.php WordPress

Jika file ini terekspos ke luar, penyerang bisa langsung terhubung ke database, atau memalsukan sesi login dengan kunci keamanan lalu mengambil alih hak admin.

2️⃣ Membatasi Izin File ke 600

WordPress biasanya mengatur folder ke 755 dan file ke 644, tetapi wp-config.php dibatasi ke 600 agar hanya pemiliknya yang bisa membaca dan menulisnya. Berikut perintah yang dijalankan di situs uji testpilotweb.com.

chmod 600 /home/testpilotweb/www/wp-config.php
stat -c '%a %U' /home/testpilotweb/www/wp-config.php
600 testpilotweb

Di server tempat PHP berjalan dengan akun yang berbeda dari pemilik file, WordPress tidak bisa membaca file ini jika izinnya 600, sehingga situs tidak terbuka. Di testpilotweb.com, PHP-FPM berjalan dengan akun yang sama dengan pemilik file, sehingga situs tetap terbuka normal setelah izinnya diubah.

Di shared hosting yang tidak menyediakan SSH, ubah ke nilai yang sama lewat menu izin di program FTP atau File Manager cPanel.

3️⃣ Memblokir Akses di Server Web

Jika izin tidak bisa diubah, atau Anda ingin menambah satu lapis perlindungan lagi, atur server web agar menolak permintaan ke wp-config.php sepenuhnya.

🔲 Apache (.htaccess)

<Files wp-config.php>
    Require all denied
</Files>

[order allow,deny]·[deny from all] yang sering terlihat di artikel lama adalah sintaks Apache 2.2. Di Apache 2.4, sintaks ini hanya berfungsi jika modul kompatibilitas (mod_access_compat) aktif.

🔲 nginx

nginx tidak membaca .htaccess, jadi aturan [location] dimasukkan ke file konfigurasi server; situs ini juga mengembalikan 403 dengan cara yang sama.

location ~* /wp-config(-sample)?\.php$ {
    deny all;
}

Titik dalam regex di-escape menjadi [\.]. Jika titik dibiarkan apa adanya, alamat artikel seperti [/wp-config-php-pengaturan-dasar/] juga ikut terblokir; situs ini pun pernah mengalami artikel yang tidak bisa dibuka karena 403 akibat kesalahan yang sama.

4️⃣ Memblokir File Sementara Editor·File Backup

Salinan [.swp] yang muncul selama file dibuka dengan vi dan salinan [.bak] yang disimpan sebelum mengedit tidak dijalankan sebagai PHP, melainkan dikirim apa adanya sebagai teks.

nginx memutus kedua jenis file itu sekaligus; [444] adalah kode khusus nginx yang menutup koneksi tanpa mengirim respons.

location ~ \.sw[opx]$ { return 444; }
location ~* (\.(bak|orig|old|save)|_ori|\.bak\.[0-9]+)$ { return 444; }

5️⃣ Memindahkan File Satu Tingkat di Atas Web Root

WordPress mencari wp-config.php di folder instalasi terlebih dahulu, dan jika tidak ada, mencarinya di folder tepat di atasnya lalu memuatnya. Jika file dipindahkan satu tingkat ke luar [public_html], file itu tidak lagi bisa dijangkau lewat alamat web.

Namun, jika di folder atas itu ada [wp-settings.php] milik instalasi WordPress lain, WordPress tidak akan membaca wp-config.php di folder tersebut. Setelah memindahkannya, segera periksa apakah situs dan layar admin masih bisa dibuka.

6️⃣ Menonaktifkan Pengeditan File

Nonaktifkan menu ‘Editor Berkas Tema’ dan ‘Editor Berkas Plugin’ di Dasbor WordPress. Meskipun penyerang berhasil merebut hak admin, ini adalah salah satu pertahanan terkuat untuk mencegah kode berbahaya disisipkan lewat web.

define('DISALLOW_FILE_EDIT', true);	

7️⃣ Menghapus wp-config-sample.php

wp-config-sample.php adalah file contoh yang dipakai saat instalasi, jadi boleh dihapus setelah instalasi selesai. File ini tidak berisi informasi sensitif, tetapi penyerang mencarinya di jalur default-nya, jadi tidak ada alasan untuk menyimpannya.

Artikel Pengaturan Dasar wp-config.php merangkum baris-baris asli file contoh beserta arti setiap itemnya. Jika file ini tidak dihapus, bagian [(-sample)?] pada aturan nginx di atas juga ikut memblokirnya.

WordPress Box

ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Buktikan bahwa Anda manusia: 2   +   7   =