Bagaimana Cara Menonaktifkan XML-RPC di WordPress?

Diterbitkan: 2022-09-19

Apakah Anda mencari tentang file xmlrpc.php dan bagaimana Anda dapat menonaktifkannya di WordPress? Artikel ini akan menjelaskan apa itu xmlrpc.php dan bagaimana Anda dapat menonaktifkannya.

Berkomunikasi dengan WordPress dari aplikasi di luar lingkungan WordPress melalui spesifikasi XML-RPC dimungkinkan dengan menstandardisasi metode komunikasi antar sistem.

Sejak asalnya, spesifikasi ini sangat berharga bagi komunitas WordPress. Tanpa itu, WordPress akan terisolasi dari internet lainnya.

Namun, xmlrpc.php juga memiliki beberapa kelemahan. WP REST API telah menjadi komponen penting WordPress sejak kerentanan file xmlrpc.php ditemukan. Ini sangat meningkatkan cara WordPress berinteraksi dengan program perangkat lunak lain.

Tujuan artikel ini adalah untuk menjelaskan apa itu xmlrpc.php, mengapa ini harus dinonaktifkan, dan bagaimana Anda dapat menonaktifkannya.

Kami juga menyarankan Anda untuk memeriksa artikel kami tentang plugin keamanan WordPress terbaik.

Apa itu file xmlrpc.php?

Tujuan dari bagian ini adalah untuk menjawab pertanyaan Apa itu XML-RPC PHP? Spesifikasi XML-RPC dapat digunakan untuk berkomunikasi antara WordPress dan sistem lainnya.

Menggunakan HTTP sebagai protokol transport dan XML sebagai protokol pengkodean, XML-RPC dapat menstandardisasi protokol yang digunakan dalam komunikasi ini.

WordPress dicabangkan pada tahun 2003 dari perangkat lunak blogging b2, yang menggunakan XML-RPC sebagai antarmuka. File bernama xmlrpc.php berada di direktori root sistem dan berisi kode untuk fitur ini. File ini masih tersedia meskipun XML-RPC sebagian besar sudah usang.

Itu adalah pengaturan default di versi awal WordPress untuk menonaktifkan XML-RPC. Sejak versi 3.5, ini telah diaktifkan secara default untuk mendukung komunikasi antara aplikasi seluler WordPress Anda dan instalasi WordPress Anda.

Sebelum WordPress versi 3.5, aplikasi seluler WordPress hanya dapat memposting konten jika situs Anda dikonfigurasi dengan XML-RPC. Ini disebabkan oleh fakta bahwa aplikasi tidak menjalankan WordPress; sebagai gantinya, itu berkomunikasi dengan situs WordPress Anda menggunakan xmlrpc.php.

Selain itu, XML-RPC digunakan untuk berkomunikasi antara WordPress dan platform blogging lainnya dan antara WordPress dan aplikasi seluler WordPress.

XML-RPC dapat digunakan untuk pingback dan trackback. Ini juga berfungsi sebagai backend untuk plugin Jetpack, yang memungkinkan situs WordPress yang dihosting sendiri untuk menjadi anggota WordPress.com.

Karena REST API sekarang telah terintegrasi ke inti WordPress, kami tidak lagi menggunakan file xmlrpc.php. Alih-alih menggunakan file ini, Anda sekarang dapat berkomunikasi dengan aplikasi seluler WordPress, klien desktop, plugin Jetpack, dan sistem serta layanan lain menggunakan REST API.

Dimungkinkan juga untuk mengintegrasikan REST API dengan jangkauan sistem yang lebih luas, dan fleksibilitasnya lebih besar daripada xmlrpc.php. Karena XML-RPC telah digantikan oleh REST API, Anda harus menonaktifkan xmlrpc.php di situs web Anda untuk menghindari masalah.

Mengapa Anda harus menonaktifkan XML-RPC?

Anda harus menyadari bahwa file xmlrpc.php dapat mengekspos kerentanan XML-RPC yang diaktifkan dari situs WordPress Anda ke peretas, jadi Anda harus menonaktifkannya.

Penggunaan XML-RPC tidak lagi diperlukan untuk komunikasi di luar WordPress. Jika Anda ingin menjaga situs Anda seaman mungkin, Anda harus menonaktifkannya.

Karena alasan inilah WordPress akan selalu kompatibel ke belakang. Anda harus terus-menerus memperbarui plugin dan tema WordPress yang terkait dengan situs web WordPress jika Anda bertanggung jawab untuk itu.

Jika XML-RPC diaktifkan di situs web Anda, peretas dapat menggunakannya sebagai alat untuk meluncurkan serangan DDoS di situs web Anda. Mereka dapat menggunakan modul xmlrpc.php untuk menghasilkan banyak pingback ke situs Anda, yang dapat membebani server dan menyebabkan situs web down.

Selanjutnya, xmlrpc.php juga mengirimkan informasi otentikasi dengan setiap permintaan, sehingga peretas mungkin dapat mencegat informasi ini dan menggunakannya untuk mencoba mengakses situs web Anda. Serangan brute force ini dapat memungkinkan peretas untuk mengeksekusi kode berbahaya, menghapus kode, dan bahkan merusak database Anda.

Bagaimana cara memeriksa XML-RPC diaktifkan?

Silakan klik tautan berikut untuk mengakses situs web: Layanan Validasi XML-RPC WordPress.

Setelah Anda memasukkan nama domain Anda, klik tombol Periksa.

Periksa xmlrpc diaktifkan di WordPress

Jika pengujian berhasil, XML-RPC sekarang akan diaktifkan, yang harus segera dimatikan.

Nonaktifkan XMLRPC Menggunakan Plugin WordPress

Untuk berbagai alasan, pemilik situs mungkin ingin menonaktifkan fungsionalitas XMLRPC. Anda dapat menggunakan berbagai plugin, seperti Nonaktifkan XML-RPC, untuk melakukan ini.

Nonaktifkan XMLRPC menggunakan Plugin Nonaktifkan XML-RPC

Kami menjelaskan cara menggunakan Plugin Nonaktifkan XML-RPC untuk menonaktifkan fungsionalitas XMLRPC. Silakan masuk ke panel administrasi WordPress Anda.

1. Klik Plugin dan kemudian Tambah Baru.

2. Masukkan "Nonaktifkan XML-RPC" di kotak pencarian. Instal plugin Nonaktifkan XML-RPC setelah itu.

Instal plugin baru di WordPress

3. Aktifkan plugin, dan Anda siap untuk pergi. Kemudian, XML-RPC dinonaktifkan.

Instal Nonaktifkan plugin CML-RPC

Dalam plugin ini, Anda dapat menemukan Validator XML-RPC yang dapat digunakan untuk memeriksa apakah XML-RPC telah dinonaktifkan. Jika XML-RPC telah dinonaktifkan, pesan kegagalan akan muncul. Jika tidak, Anda dapat menonaktifkannya dengan plugin ini.

Konfigurasikan Aktivasi XML-RPC dan REST API dengan Plugin

Plugin REST XML-RPC Data Checker memungkinkan Anda untuk mengonfigurasi REST API dan xmlrpc.php di situs web Anda dengan cara yang lebih halus.

Setelah Anda menginstal dan mengaktifkan plugin, klik tab XML-RPC setelah mengklik tab REST XML-RPC Data Checker di pengaturan.

Melalui plugin, Anda dapat menentukan dengan tepat fitur xmlrpc.php mana yang diaktifkan di situs Anda. Dimungkinkan juga untuk menonaktifkannya sepenuhnya. Ada juga tab di plugin yang memungkinkan Anda untuk mengontrol REST API jika Anda memilih untuk melakukannya.

Nonaktifkan XMLRPC Tanpa Plugin

Jika Anda memilih untuk tidak menambahkan plugin lain ke situs web Anda, Anda dapat menonaktifkan xmlrpc.php menggunakan filter atau file .htaccess Anda. Mari kita pertimbangkan kedua opsi tersebut bersama-sama.

Nonaktifkan xmlrpc.php melalui Filter

Dengan menggunakan filter xmlrpc_enabled, sangat mudah untuk menonaktifkan xmlrpc.php. Anda harus menambahkan fungsi ini dan mengaktifkannya di situs web Anda:

 add_filter( 'xmlrpc_enabled', '__return_false' );

Fungsi tersebut dapat ditambahkan ke file fungsi tema. File .htaccess juga dapat diedit menggunakan cPanel atau FTP, tergantung pada apakah Anda terhubung ke penyedia hosting menggunakan Apache.

Fungsi __return_false WordPress mengembalikan kondisi boolean false. Filter ini hanya memblokir operasi yang memerlukan pengguna yang masuk.

Itu harus dicabut dari semua metode untuk menonaktifkan semua operasi server XMLRPC. Untuk mencapai ini, Anda perlu menghubungkan ke filter xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

File xmlrpc.php membuat objek kelas wp_xmlrpc_server saat permintaan dibuat. Di dalam folder wp-includes adalah file kelas yang berisi properti yang disebut metode.

Properti metode menyertakan larik nama fungsi yang dapat diakses melalui permintaan XML-RPC.

Fungsi dikembalikan dengan pesan kesalahan saat tidak disertakan dalam larik ini. Jadi, jika Anda mengosongkan array, Anda yakin bahwa Anda tidak akan dapat menggunakan fungsi apa pun.

Nonaktifkan XML-RPC menggunakan .htaccess

Menonaktifkan XML-RPC menggunakan .htaccess mencakup beberapa langkah sederhana. Ini adalah bagaimana Anda dapat menonaktifkan xmlrpc.php .htaccess:

  • Anda dapat menggunakan FTP atau File Manager untuk menavigasi ke direktori root situs web Anda.
  • Anda harus membuka file .htaccess.
  • Anda perlu menambahkan kode berikut ke file .htaccess Anda:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx dapat diganti dengan alamat IP yang ingin Anda berikan akses ke xmlrpc.php. Jika Anda ingin menghapus xmlrpc.php dari WordPress seluruhnya, Anda dapat menghapus baris ini.

Nonaktifkan XMLRPC di Apache/Nginx

Menonaktifkan XMLRPC di Apache/Nginx juga bisa menjadi proses yang sederhana. Kode berikut harus ditambahkan ke file konfigurasi Apache untuk menonaktifkan xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Menggunakan kode berikut dalam file konfigurasi Nginx, Anda dapat menonaktifkan xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

Bagaimana cara mencari dan menemukan serangan XML-RPC di berbagai distribusi Linux?

Jika Anda mencari serangan XML-RPC di distribusi Linux yang berbeda, Anda dapat menggunakan perintah berikut untuk menghentikan serangan xmlrpc.php:

Server CentOS dengan Apache diinstal:
 # grep xmlrpc /var/logs/httpd/access.log
Dengan Apache di Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
Untuk server berbasis Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
Untuk server berbasis cPanel:
 # grep xmlrpc /home/username/logs/access.log

Anda akan menerima output berikut jika perintah sebelumnya dijalankan di situs WordPress yang sedang diserang:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Kapan harus mengaktifkan file XML-RPC.php

Ada beberapa situasi di mana akan menguntungkan untuk mengaktifkan XML-RPC, dan ini adalah beberapa di antaranya:

  • Jika REST API tidak tersedia saat Anda memiliki situs web lama yang tidak dapat diperbarui ke versi 4.4 atau lebih tinggi karena alasan apa pun.
  • Sebuah program tidak dapat mengakses REST API di situs web yang Anda gunakan untuk berkomunikasi dengannya.
  • Untuk mengintegrasikan beberapa aplikasi pihak ketiga yang membutuhkan XML-RPC untuk bekerja.

Perlu dicatat, bagaimanapun, bahwa tidak satu pun dari kritik di atas merupakan alasan yang cukup untuk terus menggunakan XML-RPC dan eksploitasi xmlrpc.php.

Satu-satunya alasan WordPress memilikinya adalah karena kompatibel ke belakang; akibatnya, Anda hanya ingin menggunakannya jika Anda menggunakan versi WordPress yang sudah ketinggalan zaman.

Bagi mereka yang ingin menjaga situs mereka tetap terkini dan mendukung versi perangkat lunak terbaru, xmlrpc.php harus dinonaktifkan.

Menguji Fungsionalitas XML-RPC di WordPress

Selain itu, Anda dapat menggunakan opsi pengujian WordPress untuk memverifikasi bahwa situs web Anda telah berhasil dinonaktifkan dari menerima permintaan XML-RPC.

Untuk tujuan ini, Anda dapat mengunduh Aplikasi Seluler WordPress ke ponsel Anda. Ada versi Android dan iPhone dari aplikasi ini tersedia. Setelah menginstal aplikasi di perangkat Anda, ketuk Masukkan alamat situs Anda yang ada untuk mulai menggunakannya.

Anda selesai jika Anda melihat pesan kesalahan bahwa layanan XML-RPC dinonaktifkan di situs ini. Ini adalah pesan terlarang WordPress xmlrpc.php 403.

Kesimpulan

Spesifikasi XML-RPC dikembangkan sebelum pembuatan WordPress untuk memungkinkan komunikasi dengan aplikasi dan sistem eksternal. Beberapa kelemahan keamanan ada dalam spesifikasi ini, yang dapat membuat situs web Anda rentan terhadap serangan.

REST API memungkinkan situs Anda untuk berkomunikasi dengan program lain, sehingga memungkinkan untuk menonaktifkan xmlrpc.php tanpa khawatir. Jika Anda ingin meningkatkan keamanan situs web Anda, ikuti langkah-langkah yang disebutkan untuk melakukannya.