5 hal esensial: lakukan dulu
- Jaga agar inti WordPress, tema, dan plugin tetap diperbarui. Plugin yang rentan adalah vektor serangan nomor 1. Aktifkan pembaruan otomatis untuk versi minor (WordPress 5.6+ melakukannya secara bawaan). Untuk versi mayor, perbarui dalam 7 hari setelah rilis. Untuk plugin, aktifkan pembaruan otomatis untuk yang tepercaya; tinjau secara manual catatan versi plugin krusial.
- Gunakan kata sandi yang kuat dan unik untuk setiap akun WordPress. Terutama akun admin. Gunakan pengelola kata sandi (1Password, Bitwarden). Nonaktifkan nama pengguna «admin»: buat admin baru dan hapus yang lama.
- Aktifkan autentikasi dua faktor. Gunakan Wordfence Login Security (gratis) atau Generator QR 2FA kami dengan aplikasi TOTP apa pun. 2FA mengalahkan lebih dari 99 % serangan credential stuffing.
- Pasang plugin keamanan tepercaya. Wordfence (versi gratis cukup untuk sebagian besar situs) atau Solid Security. Jangan menumpuk beberapa: mereka saling konflik. Plugin mengelola batas upaya login, pemantauan integritas file, dan pemindaian malware.
- Cadangkan harian di luar situs. UpdraftPlus → Dropbox/Google Drive. Buat cadangan sebelum Anda membutuhkannya. Uji proses pemulihan setidaknya sekali.
10 berikutnya: tindakan tambahan berdampak tinggi
- Paksa HTTPS. Let's Encrypt gratis di setiap hosting modern. Alihkan HTTP ke HTTPS di tingkat server.
- Ubah prefiks tabel basis data. WordPress menggunakan wp_ secara bawaan; ubah menjadi sesuatu yang kustom saat instalasi. Tidak mencegah serangan, tetapi mempersulit beberapa pola serangan.
- Nonaktifkan XML-RPC jika tidak digunakan. XML-RPC adalah vektor amplifikasi brute force yang umum. Jika Anda tidak menggunakan aplikasi seluler Jetpack atau publikasi jarak jauh, nonaktifkan melalui .htaccess atau plugin.
- Batasi upaya login. Wordfence melakukannya secara otomatis. Mencegah credential stuffing dengan brute force.
- Putar kunci/salt autentikasi WordPress. Gunakan Generator Salt WordPress kami. Putar setelah ada kecurigaan kompromi, setelah menghapus admin yang terkompromi, dan setiap 6-12 bulan secara rutin.
- Gunakan SSH atau SFTP untuk mentransfer file, jangan pernah FTP polos. FTP mengirim kredensial dalam teks biasa.
- Batasi akses ke wp-admin berdasarkan IP jika memungkinkan. Jika tim Anda menggunakan IP tetap (kantor, VPN), batasi wp-admin hanya untuk IP tersebut. Melalui .htaccess atau konfigurasi Nginx.
- Nonaktifkan pengeditan file di wp-config.php. Tambahkan:
define('DISALLOW_FILE_EDIT', true);Mencegah penyerang mengedit tema/plugin dari panel jika mereka mengompromi sebuah akun. - Sembunyikan nomor versi WordPress. Hapus tag meta generator. Tidak mencegah serangan, tetapi mengurangi fingerprinting.
- Kunci izin file. File 644, direktori 755, wp-config.php 600. Sebagian besar hosting terkelola melakukannya secara otomatis; pada VPS, konfigurasikan secara eksplisit.
Penyempurnaan: baik tetapi tidak krusial
- URL login kustom (mis. WPS Hide Login). Terutama mengurangi kebisingan lalu lintas bot; bukan keamanan nyata.
- CAPTCHA pada formulir login. Hambatan ringan untuk serangan otomatis.
- Nonaktifkan eksekusi PHP di /uploads/. Mencegah shell PHP yang diunggah agar tidak berjalan.
- Gunakan WAF Cloudflare (tingkat gratis). Menyaring lalu lintas berbahaya sebelum mencapai server Anda.
- Konfigurasikan peringatan email admin untuk pembaruan plugin/inti.
- Gunakan preload HSTS untuk memaksa HTTPS di tingkat browser.
- Nonaktifkan enumerasi pengguna melalui REST API (Solid Security atau Wordfence menanganinya).
- Gunakan header Content Security Policy (CSP).
- Nonaktifkan penjelajahan direktori (sebagian besar hosting melakukannya secara bawaan).
- Pantau waktu aktif + integritas dengan layanan eksternal (tingkat gratis UptimeRobot + Sucuri SiteCheck mingguan).
- Batasi peran pengguna ke hak istimewa minimal. Sebagian besar kontributor tidak memerlukan akses tingkat editor.
- Enkripsi cadangan basis data (UpdraftPlus Premium menawarkannya).
- Hosting gambar di luar domain melalui CDN (mengurangi permukaan serangan).
- Tinjauan berkala atas log audit keamanan.
- Uji penetrasi tahunan jika situs menghasilkan pendapatan signifikan.
Mitos keamanan WordPress: lewati saja
Beberapa tindakan «keamanan» yang sangat direkomendasikan menawarkan perlindungan nyata yang minimal: (1) «Sembunyikan versi WordPress»: mengetahui versi Anda sedikit membantu serangan yang ditargetkan, tetapi solusi nyatanya adalah memperbarui, bukan menyembunyikan. (2) «Pindahkan wp-config.php di atas public_html»: pada dasarnya memberikan nol manfaat keamanan; file tersebut sudah dilindungi oleh .htaccess. (3) «Nonaktifkan REST API»: merusak banyak plugin dan memblokir sedikit. Batasi endpoint tertentu sebagai gantinya. (4) «Tumpuk beberapa plugin keamanan»: mereka konflik dan tumpang tindih. Satu plugin tepercaya (Wordfence atau Solid Security) mencakup apa yang akan dilakukan tiga plugin. (5) «Ubah nama wp-login.php»: keamanan melalui ketidakjelasan; penyerang menemukan URL baru dengan mudah melalui pengalihan.
Jika Anda diretas: daftar pemulihan
- Jangan panik; jangan langsung menghapus sesuatu. Ambil dulu cuplikan kondisi saat ini untuk analisis forensik.
- Bawa situs ke luring (plugin mode pemeliharaan atau pengalihan .htaccess ke halaman statis).
- Ubah semua kata sandi admin dan putar salt WordPress.
- Audit akun pengguna: segera hapus akun admin yang tidak dikenali.
- Pindai malware dengan Wordfence Premium atau Sucuri.
- Bandingkan file saat ini dengan unduhan WordPress yang bersih: diff mengungkap file inti yang dimodifikasi.
- Tinjau tabel wp_options basis data untuk entri yang tidak terduga (sering kali berisi JS yang disuntikkan).
- Pulihkan dari cadangan bersih terbaru (inilah mengapa cadangan harian penting).
- Setelah dipulihkan, audit setiap plugin: hapus yang tidak digunakan, perbarui semua, dan ganti yang memiliki CVE publik.
- Perbarui inti WordPress ke versi terbaru.
- Aktifkan kembali situs dan pantau infeksi ulang selama 30 hari.