Cara Menonaktifkan XMLRPC Pada CMS WordPress
Cara Menonaktifkan XML-RPC di WordPress dan Kenapa Sebaiknya Dinonaktifkan. Oke kali saya akan membahas sedikit mengenai WordPress. Tapi sebelumnya mungkin ada yang mau ngomong "3h l0 aj4 pak3 bl0gg3r, g4usah s0k b4has w0rdpr3ss d3h". Jadi gini, artikel di blog ini sudah ada sekitar 800 lebih artikel dan pas saya coba import artikel dan komentarnya ke WordPress, ternyata malah kacau. Belum lagi masalah permalink, dan saya males kalo harus benerin segitu banyak artikel. Jadi untuk blog ini tetep pake Blogger. Gitu.
Oke balik lagi ke topik artikel. Kita bahas dari awal.
Apa itu XML-RPC?
Pertama mungkin kita bahas dulu apa itu XML-RPC. Dilansir dari WikiPedia, XML-RPC adalah protokol panggilan prosedur jarak jauh yang menggunakan XML untuk menyandikan panggilan dan HTTP sebagai mekanisme transportasi. Sederhananya, xmlrpc ini digunakan bagi pengguna untuk terhubung ke WordPress mereka secara remote. terhubung disini dalam artian pemilik situs bisa mengelola atau memposting sesuatu ke situs mereka tanpa harus login ke dashboard WP, cukup melalui xmlrpc. Di WordPress, fitur ini aktif dengan file xmlrpc.php yang berlokasi di root path WordPress.
Fitur ini sebenarnya hampir tidak memiliki fungsi lagi untuk saat ini. Ya, mungkin bagi kalian yang menggunakan Jetpack tidak akan bisa menggunakan plugin tersebut jika kalian tidak mengaktifkan xmlrpc, namun untuk keperluan lain hampir tidak ada. Terutama setelah munculnya WordPress API, kegunaan XMLRPC hampir tidak ada. Saya sendiri masih heran kenapa pengembang WordPress masih mempertahankan fitur ini...
Masalah yang Ditimbulkan
Alih-alih memiliki segudang manfaat, "fitur bawaan" WordPress ini menurut saya malah membawa banyak masalah, terutama dari segi keamanan.
Yang paling sering terjadi adalah fitur xmlrpc ini sering dimanfaatkan oleh hacker untuk melakukan bruteforce ke WordPress. Jadi percuma semisal kalian memproteksi halaman login WordPress kalian dengan captcha maupun rate limit - misalnya, IP diblokir setelah 3x gagal login - namun xlmrpc kalian tetap aktif, karena bruteforce bisa dilakukan darisana.
Kedua, fitur ini sering dimanfaatkan untuk melancarkan DDOS. keberadaan xmlrpc memungkinkan hacker untuk menggunakan fitur pingback WordPress dan mengirimkan pingback dari ribuan IP ke server target dalam hitungan detik.
Menonaktifkan XML-RPC
Ada beberapa cara untuk menonaktifkan XML-RPC di WordPress. Yang paling simple adalah menggunakan plugins. Salahsatu plugin rekomendasi saya adalah Disable XML-RPC.
Namun, terlalu banyak plugin juga kurang bagus. Saya sendiri selama masih bisa dilakukan secara manual, dan tidak terlalu ribet, saya lebih memilih cara manual daripada menggunakan plugin.
Menonaktifkan XML-RPC WordPress secara manual.
Webserver Apache
Tambahkan .htaccess di direktori instalasi WordPress, dan tambahkan kode berikut
Tambahkan baris kdoe berikut kedalam serverblock kalian.
Oke balik lagi ke topik artikel. Kita bahas dari awal.
Apa itu XML-RPC?
Pertama mungkin kita bahas dulu apa itu XML-RPC. Dilansir dari WikiPedia, XML-RPC adalah protokol panggilan prosedur jarak jauh yang menggunakan XML untuk menyandikan panggilan dan HTTP sebagai mekanisme transportasi. Sederhananya, xmlrpc ini digunakan bagi pengguna untuk terhubung ke WordPress mereka secara remote. terhubung disini dalam artian pemilik situs bisa mengelola atau memposting sesuatu ke situs mereka tanpa harus login ke dashboard WP, cukup melalui xmlrpc. Di WordPress, fitur ini aktif dengan file xmlrpc.php yang berlokasi di root path WordPress.
Fitur ini sebenarnya hampir tidak memiliki fungsi lagi untuk saat ini. Ya, mungkin bagi kalian yang menggunakan Jetpack tidak akan bisa menggunakan plugin tersebut jika kalian tidak mengaktifkan xmlrpc, namun untuk keperluan lain hampir tidak ada. Terutama setelah munculnya WordPress API, kegunaan XMLRPC hampir tidak ada. Saya sendiri masih heran kenapa pengembang WordPress masih mempertahankan fitur ini...
Masalah yang Ditimbulkan
Alih-alih memiliki segudang manfaat, "fitur bawaan" WordPress ini menurut saya malah membawa banyak masalah, terutama dari segi keamanan.
Yang paling sering terjadi adalah fitur xmlrpc ini sering dimanfaatkan oleh hacker untuk melakukan bruteforce ke WordPress. Jadi percuma semisal kalian memproteksi halaman login WordPress kalian dengan captcha maupun rate limit - misalnya, IP diblokir setelah 3x gagal login - namun xlmrpc kalian tetap aktif, karena bruteforce bisa dilakukan darisana.
Kedua, fitur ini sering dimanfaatkan untuk melancarkan DDOS. keberadaan xmlrpc memungkinkan hacker untuk menggunakan fitur pingback WordPress dan mengirimkan pingback dari ribuan IP ke server target dalam hitungan detik.
Menonaktifkan XML-RPC
Ada beberapa cara untuk menonaktifkan XML-RPC di WordPress. Yang paling simple adalah menggunakan plugins. Salahsatu plugin rekomendasi saya adalah Disable XML-RPC.
Namun, terlalu banyak plugin juga kurang bagus. Saya sendiri selama masih bisa dilakukan secara manual, dan tidak terlalu ribet, saya lebih memilih cara manual daripada menggunakan plugin.
Menonaktifkan XML-RPC WordPress secara manual.
Webserver Apache
Tambahkan .htaccess di direktori instalasi WordPress, dan tambahkan kode berikut
<Files xmlrpc.php>Webserver Nginx
order deny,allow
deny from all
</Files>
Tambahkan baris kdoe berikut kedalam serverblock kalian.
location = /xmlrpc.php {
deny all;
return 404;
access_log off;
log_not_found off;
}
Kode diatas untuk membuat server merespon dengan kode 404 (Not Found) saat request ke file xmlrpc.php dilakukan. Contoh:
Oke mungkin itu saja artikel kali ini. Semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.