WordPress ha sempre avuto funzioni integrate che ti consentono di interagire in remoto con il tuo sito web. Ammettilo, a volte dovrai accedere al tuo sito web e il tuo computer non sarà nelle vicinanze. Per molto tempo, la soluzione è stata un file chiamato xmlrpc.php di WordPress.

Negli ultimi anni però, questo file è diventato più un parassita che una soluzione.

In questo articolo analizziamo che cos’è in realtà xmlrpc.php e perché è stato creato, faremo una panoramica dei problemi comuni di sicurezza che provoca e come correggerli sul tuo sito WordPress.

Che cos’è Xmlrpc.php?

XML-RPC è una funzionalità di WordPress che consente la trasmissione di dati, con HTTP che funge da meccanismo di trasporto e XML come meccanismo di codifica.

Poiché WordPress non è un sistema chiuso e occasionalmente ha bisogno di comunicare con altri sistemi, si è cercato di gestire così questa funzionalità..

Supponiamo ad esempio che tu volessi pubblicare sul tuo sito dal tuo dispositivo mobile poiché il tuo computer non è nelle vicinanze, è possibile utilizzare la funzione di accesso remoto abilitata da xmlrpc.php per fare proprio questo.

Le funzionalità principali abilitate da xmlrpc.php ti consentivano di connetterti al tuo sito tramite smartphone, implementando trackback e pingback WordPress da altri siti e alcune funzioni associate al plugin Jetpack.

Perché è stato creato Xmlrpc.php e come è stato utilizzato?

L’implementazione di XMLRPC risale ai primi tempi di WordPress prima ancora che diventasse WordPress (scusate il gioco di parole).

All’inizio di Internet, quando le connessioni erano incredibilmente lente, il processo di scrittura e pubblicazione sul web era molto più difficile e richiedeva tempo.

Invece di scrivere all’interno del browser stesso, molte persone scrivevano offline, quindi copiavano e incollavano i loro contenuti sul web. Tuttavia, questo processo era tutt’altro che ideale.

La soluzione (in quel momento) era quella di creare un client di blogging offline, in cui fosse possibile comporre i contenuti, quindi accedere al blog per pubblicarli.

Questa connessione è stata effettuata tramite XML-RPC. Con il framework di base di XML-RPC attivo, le prime app utilizzavano la stessa connessione per consentire alle persone di accedere ai loro siti WordPress da altri dispositivi.

XML-RPC al giorno d’oggi

Nel 2008, con la versione 2.6 di WordPress, c’era un’opzione per abilitare o disabilitare XMLRPC ma con il rilascio dell’app WordPress per iPhone, il supporto XML-RPC era abilitato per impostazione predefinita e non era possibile disattivare l’impostazione. Tutto è rimasto così fino ad oggi.

La funzionalità di questo file è notevolmente diminuita nel tempo e la dimensione complessiva del file è diminuita da 83kb a 3kb, quindi non ha più un ruolo così importante come una volta.

Il futuro di XMLRPC WordPress

Con le nuove API WordPress, possiamo aspettarci che XML-RPC venga eliminato del tutto.

Le nuove WordPress API non sono perfette, ma forniscono una soluzione più solida e sicura al problema che xmlrpc.php ha risolto in passato.

Perché dovresti disabilitare Xmlrpc.php in WordPress

I maggiori problemi che sorgono con XML-RPC sono i problemi di sicurezza che non riguardano direttamente XML-RPC, ma piuttosto come viene utilizzato il file per effettuare un attacco Brute Force sul tuo sito WordPress.

Certo, puoi proteggerti con password incredibilmente forti e plugin di sicurezza WordPress ma la migliore modalità di protezione è semplicemente disabilitarlo.

Esistono due principali punti deboli di XML-RPC che sono stati sfruttati in passato.

Il primo è usare brute force attack per ottenere l’accesso al tuo sito. Un utente malintenzionato tenterà di accedere al tuo sito tramite xmlrpc.php utilizzando varie combinazioni di username e password.

Possono effettivamente utilizzare un singolo comando per testare centinaia di password diverse, ciò consente loro di eludere gli strumenti di sicurezza che in genere rilevano e bloccano gli attacchi brute force.

Il secondo è mandare i siti offline attraverso un attacco DDoS. Gli hacker utilizzerebbero la funzione di pingback in WordPress per inviare istantaneamente pingback a migliaia di siti.

Questa funzione di xmlrpc.php offre agli hacker una quantità quasi infinita di indirizzi IP su cui distribuire un attacco DDoS.

Puoi verificare se XML-RPC è in esecuzione sul tuo sito tramite uno strumento chiamato XML-RPC Validator.

Inserisci l’URL del tuo sito e, se ricevi un messaggio di errore, significa che XML-RPC non è abilitato.

xmlrpc.php validator

Se invece ricevi un messaggio di successo, puoi interrompere xmlrpc.php con uno dei due approcci seguenti.

Metodo 1: Disabilitare Xmlrpc.php con un plugin WordPress

Disabilitare XMLRPC sul tuo sito WordPress non potrebbe essere più semplice.

Passa semplicemente alla sezione Plugin ›Aggiungi nuovo dalla dashboard di WordPress. Cerca Disable XML-RPC e installa il plugin :

disabilita WordPress xmlrpc con un plugin

Attiva il plugin e sei pronto. Questo plugin inserirà automaticamente il codice necessario per disattivare XML-RPC.

Tuttavia, tieni presente che alcuni plugin esistenti potrebbero utilizzare parti di XML-RPC e disabilitarlo completamente potrebbe causare conflitti o provocare malfunzionamenti di alcuni elementi del tuo sito.

Se desideri disattivare solo determinati elementi di XML-RPC, ma consentire comunque il funzionamento di determinati plugin e funzionalità, utilizza uno dei seguenti plugin:

Stop XML-RPC Attack. Questo plugin interromperà tutti gli attacchi XML-RPC, ma continuerà a consentire ai plugin come Jetpack e ad altri strumenti e plugin automatici di conservare l’accesso al file xmlrpc.php.

Control XML-RPC publishing. Ciò consente di mantenere il controllo e l’utilizzo sull’opzione di pubblicazione remota offerta da xmlrpc.php.

Metodo 2: Disabilitare manualmente Xmlrpc.php

Se non desideri utilizzare un plugin e preferisci farlo manualmente, segui questo approccio.

Arresterà tutte le richieste xmlrpc.php in arrivo prima di essere passate su WordPress.

Apri il tuo file .htaccess. Potrebbe essere necessario attivare “Mostra file nascosti” in File Manager o nel client FTP per individuare questo file.

All’interno del tuo file .htaccess, incolla il seguente codice:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Conclusione

Nel complesso, XMLRPC è stata una solida soluzione ad alcuni dei problemi che si sono verificati a causa della pubblicazione remota sui siti WordPress.

Tuttavia, con questa funzione sono emerse alcune falle di sicurezza che sono risultate piuttosto dannose per alcuni gestori di siti WordPress.

Per garantire che il tuo sito rimanga sicuro, è una buona idea disabilitare completamente xmlrpc.php a meno che non siano necessarie alcune delle funzioni per la pubblicazione remota e il plugin Jetpack.

E’ quindi necessario utilizzare i plugin di soluzione alternativa che consentono queste funzionalità, pur continuando a correggere le falle di sicurezza.

Con il tempo, possiamo aspettarci che le funzionalità di XMLRPC si integrino nelle nuove API WordPress ma, nel frattempo, è una buona idea proteggersi dai potenziali buchi di sicurezza XML-RPC.