Blokir XML-RPC di Nginx
2 hari ini pada salah satu VPS yang isinya cuma hosting satu situs WordPress tiba – tiba system loadnya melonjak menjadi rata – rata 3.00. 🙁 Padahal pengunjungnya dibawah 100 orang per hari dan spesifikasinya asli berlebih (DigitalOcean 512MB). Ini menyebabkan sering muncul pesan 501 Internal Server Error dan Connection Timed Out karena sudah kewalahan web servernya. Ternyata pas saya baca pada log Nginx sedang dihajar habis – habisan file xml-rpc.php milik WordPress. Wew…
Jadi apa itu XML-RPC? Ini adalah API yang berfungsi memberikan jalur aplikasi eksternal untuk berkomunikasi dengan situs WordPressnya. Seperti publikasi dan edit posting, publikasi dan edit komentar, upload gambar, dan seterusnya. Dan memang salah satu celah keamanan yang sering digunakan untuk menyerang WordPress adalah XML-RPC.
Solusinya apa? Yang bisa saya berikan sifatnya adalah sementara saja dan saya ingatkan dulu dengan memblokir akses ke XML-RPC bisa membuat beberapa fungsi plugin dan tema WordPress tidak berjalan normal. Yang saya ingat adalah JetPack terutama dan pasti masih ada lagi.
Bagaimana caranya? Silahkan edit konfigurasi virtual host Nginx dan kemudian tambahkan kode berikut:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
Setelah itu reload konfigurasi Nginx atau bisa juga restart. Yang penting dimuat ulang konfigurasi barunya. Selesai. 🙂
Oh ya, saya pernah membahas hal yang sama untuk Apache dan kurang lebih bisa diterapkan pada shared hosting karena bisa dipasangkan pada file .htaccess
.