Come disabilitare XML-RPC in WordPress?
Pubblicato: 2022-09-19Cerchi il file xmlrpc.php e come puoi disabilitarlo in WordPress? Questo articolo spiegherà cos'è xmlrpc.php e come puoi disabilitarlo.
La comunicazione con WordPress da applicazioni esterne all'ambiente WordPress tramite la specifica XML-RPC è possibile standardizzando un metodo di comunicazione tra i sistemi.
Fin dalla sua origine, questa specifica è stata di grande valore per la comunità di WordPress. Senza di esso, WordPress sarebbe stato isolato dal resto di Internet.
Tuttavia, xmlrpc.php presenta anche alcuni svantaggi. L'API REST di WP è diventata un componente vitale di WordPress da quando sono state scoperte le vulnerabilità del file xmlrpc.php. Ciò migliora notevolmente il modo in cui WordPress interagisce con altri programmi software.
Lo scopo di questo articolo è spiegare cos'è xmlrpc.php, perché dovrebbe essere disabilitato e come disabilitarlo.
Ti consigliamo inoltre di controllare il nostro articolo sui migliori plugin di sicurezza per WordPress.
Cos'è il file xmlrpc.php?
Lo scopo di questa sezione è rispondere alla domanda Cos'è XML-RPC PHP? La specifica XML-RPC può essere utilizzata per comunicare tra WordPress e altri sistemi.
Utilizzando HTTP come protocollo di trasporto e XML come protocollo di codifica, XML-RPC potrebbe standardizzare i protocolli utilizzati in queste comunicazioni.
WordPress è stato biforcato nel 2003 dal software di blogging b2, che utilizzava XML-RPC come interfaccia. Un file chiamato xmlrpc.php risiede nella directory principale del sistema e contiene il codice per questa funzione. Questo file è ancora disponibile anche se XML-RPC è principalmente obsoleto.
Era l'impostazione predefinita nelle prime versioni di WordPress per disabilitare XML-RPC. Dalla versione 3.5, è stato abilitato per impostazione predefinita per supportare la comunicazione tra la tua app mobile WordPress e la tua installazione di WordPress.
Prima della versione 3.5 di WordPress, l'app mobile di WordPress poteva pubblicare contenuti solo se il tuo sito era configurato con XML-RPC. Ciò è stato causato dal fatto che l'app non eseguiva WordPress; invece, ha comunicato con il tuo sito WordPress usando xmlrpc.php.
Inoltre, XML-RPC viene utilizzato per comunicare tra WordPress e altre piattaforme di blog e tra WordPress e l'app mobile di WordPress.
XML-RPC può essere utilizzato per pingback e trackback. È servito anche come back-end per il plug-in Jetpack, che ha permesso ai siti WordPress self-hosted di diventare membri di WordPress.com.
Poiché l'API REST è stata ora integrata nel core di WordPress, non utilizziamo più il file xmlrpc.php. Invece di utilizzare questo file, ora puoi comunicare con l'app mobile di WordPress, i client desktop, il plug-in Jetpack e altri sistemi e servizi utilizzando l'API REST.
È anche possibile integrare l'API REST con una gamma più ampia di sistemi e la sua flessibilità è maggiore di quella di xmlrpc.php. Poiché XML-RPC è stato sostituito dalle API REST, devi disabilitare xmlrpc.php sul tuo sito Web per evitare problemi.
Perché dovresti disabilitare XML-RPC?
Dovresti essere consapevole del fatto che il file xmlrpc.php potrebbe esporre agli hacker la vulnerabilità abilitata per XML-RPC del tuo sito WordPress, quindi devi disabilitarlo.
L'uso di XML-RPC non è più necessario per le comunicazioni al di fuori di WordPress. Se desideri mantenere il tuo sito il più sicuro possibile, dovresti disabilitarlo.
È per questo motivo che WordPress sarà sempre compatibile con le versioni precedenti. Dovresti aggiornare costantemente i plugin e i temi di WordPress associati ai siti Web di WordPress se ne sei responsabile.
Se XML-RPC è abilitato sul tuo sito web, un hacker può usarlo come strumento per lanciare un attacco DDoS sul tuo sito web. Possono utilizzare il modulo xmlrpc.php per generare molti pingback sul tuo sito, che possono sovraccaricare il server e causare il blocco del sito web.
Inoltre, xmlrpc.php invia anche informazioni di autenticazione con ogni richiesta, quindi gli hacker potrebbero essere in grado di intercettare queste informazioni e utilizzarle per tentare di accedere al tuo sito web. Questo attacco di forza bruta può consentire agli hacker di eseguire codice dannoso, eliminare codice e persino danneggiare il database.
Come verificare che XML-RPC sia abilitato?
Fare clic sul collegamento seguente per accedere al sito Web: Servizio di convalida XML-RPC di WordPress.
Dopo aver inserito il tuo nome di dominio, fai clic sul pulsante Verifica.
Se il test ha esito positivo, verrà ora abilitato XML-RPC, che dovrebbe essere disattivato immediatamente.
Disabilita XMLRPC usando i plugin di WordPress
Per vari motivi, i proprietari dei siti potrebbero voler disabilitare la funzionalità XMLRPC. È possibile utilizzare vari plugin, come Disable XML-RPC, per farlo.
Disabilita XMLRPC usando il plugin Disable XML-RPC
Spieghiamo come utilizzare il plugin Disable XML-RPC per disabilitare la funzionalità XMLRPC. Accedi al tuo pannello di amministrazione di WordPress.
1. Fare clic su Plugin e poi su Aggiungi nuovo.
2. Immettere "Disable XML-RPC" nella casella di ricerca. Dopodiché, installa il plug-in Disable XML-RPC.
3. Attiva il plugin e sei pronto per partire. Quindi, l'XML-RPC è disabilitato.
In questo plugin puoi trovare un validatore XML-RPC che può essere utilizzato per verificare se XML-RPC è stato disabilitato. Nel caso in cui XML-RPC sia stato disabilitato, verrà visualizzato un messaggio di errore. In caso contrario, puoi disabilitarlo con questo plugin.
Configura l'attivazione XML-RPC e API REST con un plug-in
Il plug-in REST XML-RPC Data Checker ti consente di configurare l'API REST e xmlrpc.php sul tuo sito Web in modo più dettagliato.
Dopo aver installato e attivato il plug-in, fare clic sulla scheda XML-RPC dopo aver fatto clic sulla scheda REST XML-RPC Data Checker nelle impostazioni.
Attraverso il plugin, puoi specificare esattamente quali funzionalità di xmlrpc.php sono abilitate sul tuo sito. È anche possibile disabilitarlo completamente. C'è anche una scheda nel plug-in che ti consente di controllare l'API REST se scegli di farlo.
Disabilita XMLRPC senza un plug-in
Se preferisci non aggiungere un altro plugin al tuo sito web, puoi disabilitare xmlrpc.php usando un filtro o il tuo file .htaccess. Consideriamo entrambe le opzioni insieme.
Disabilita xmlrpc.php tramite un filtro
Utilizzando il filtro xmlrpc_enabled, è molto facile disabilitare xmlrpc.php. Dovresti aggiungere questa funzione e renderla attiva sul tuo sito web:
add_filter( 'xmlrpc_enabled', '__return_false' );
La funzione può essere aggiunta al file delle funzioni del tema. Un file .htaccess può anche essere modificato utilizzando cPanel o FTP, a seconda che tu sia connesso a un provider di hosting tramite Apache.
La funzione __return_false di WordPress restituisce la condizione booleana falsa. Questo filtro blocca solo le operazioni che richiedono un utente connesso.
Deve essere annullato da tutti i metodi per disabilitare tutte le operazioni del server XMLRPC. Per ottenere ciò, è necessario collegarsi al filtro xmlrpc_methods.
add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }
Il file xmlrpc.php crea un oggetto della classe wp_xmlrpc_server quando viene effettuata una richiesta. All'interno della cartella wp-includes c'è un file di classe contenente una proprietà chiamata metodi.
La proprietà method include una matrice di nomi di funzioni a cui è possibile accedere tramite richieste XML-RPC.
La funzione viene restituita con un messaggio di errore quando non è inclusa in questa matrice. Pertanto, se si svuota l'array, si è certi che non sarà possibile utilizzare alcuna funzione.
Disabilita XML-RPC usando .htaccess
La disabilitazione dell'XML-RPC utilizzando .htaccess include alcuni semplici passaggi. Ecco come disabilitare xmlrpc.php .htaccess:
- Puoi utilizzare FTP o File Manager per navigare nella directory principale del tuo sito web.
- Dovresti aprire il file .htaccess.
- Dovrai aggiungere il seguente codice al tuo file .htaccess:
# 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 può essere sostituito con l'indirizzo IP a cui si desidera concedere l'accesso a xmlrpc.php. Se desideri rimuovere completamente xmlrpc.php da WordPress, puoi rimuovere questa riga.
Disabilita XMLRPC in Apache/Nginx
Anche la disabilitazione di XMLRPC in Apache/Nginx può essere un processo semplice. Il seguente codice dovrebbe essere aggiunto al file di configurazione di Apache per disabilitare xmlrpc.php:
< VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >
Usando il codice seguente nel file di configurazione di Nginx, puoi disabilitare xmlrpc.php:
server { ----------- location /xmlrpc.php { deny all; } }
Come cercare e trovare attacchi XML-RPC in diverse distribuzioni Linux?
Se stai cercando attacchi XML-RPC in diverse distribuzioni Linux, puoi utilizzare i seguenti comandi per fermare gli attacchi xmlrpc.php:
Un server CentOS con Apache installato:
# grep xmlrpc /var/logs/httpd/access.log
Con Apache su Ubuntu:
# grep xmlrpc /var/logs/apache2/access.log
Per i server basati su Nginx:
# grep xmlrpc /var/logs/nginx/access.log
Per i server basati su cPanel:
# grep xmlrpc /home/username/logs/access.log
Riceveresti il seguente output se i comandi precedenti fossero stati eseguiti su un sito WordPress che è sotto attacco:
POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)
Quando mantenere abilitato il file XML-RPC.php
Ci sono alcune situazioni in cui sarebbe vantaggioso abilitare XML-RPC, e queste sono alcune di esse:
- Se l'API REST non è disponibile quando si dispone di un vecchio sito Web che non può essere aggiornato alla versione 4.4 o successiva per qualsiasi motivo.
- Un programma non può accedere all'API REST sul sito Web che stai utilizzando per comunicare con esso.
- Per integrare alcune applicazioni di terze parti che richiedono XML-RPC per funzionare.
Va notato, tuttavia, che nessuna delle critiche di cui sopra è una ragione sufficiente per continuare a utilizzare XML-RPC e exploit xmlrpc.php.
L'unico motivo per cui WordPress ce l'ha è che è compatibile con le versioni precedenti; di conseguenza, vorrai usarlo solo se stai utilizzando una versione obsoleta di WordPress.
Per coloro che desiderano mantenere aggiornato il proprio sito e supportare l'ultima versione del software, xmlrpc.php dovrebbe essere disabilitato.
Testare la funzionalità XML-RPC in WordPress
Inoltre, puoi utilizzare l'opzione di test di WordPress per verificare che il tuo sito Web sia stato disabilitato correttamente dalla ricezione di richieste XML-RPC.
A tale scopo, puoi scaricare l'app mobile di WordPress sul tuo telefono. Sono disponibili versioni per Android e iPhone di questa applicazione. Dopo aver installato l'app sul tuo dispositivo, tocca Inserisci l'indirizzo del tuo sito esistente per iniziare a usarlo.
Hai finito se vedi il messaggio di errore che i servizi XML-RPC sono disabilitati su questo sito. Questo è un messaggio proibito di WordPress xmlrpc.php 403.
Conclusione
La specifica XML-RPC è stata sviluppata prima della creazione di WordPress per consentire la comunicazione con applicazioni e sistemi esterni. Esistono diversi difetti di sicurezza in questa specifica, che potrebbero rendere il tuo sito Web vulnerabile agli attacchi.
L'API REST consente al tuo sito di comunicare con altri programmi, rendendo possibile disabilitare xmlrpc.php senza preoccupazioni. Se desideri aumentare la sicurezza del tuo sito web, segui i passaggi indicati per farlo.