Che cos'è XMLRPC e in che modo minaccia la sicurezza del tuo sito WordPress

Nella directory principale di ogni sito WordPress c’è un file xmlrpc.php che in realtà esiste da prima di WordPress stesso. Prima di WordPress, al tempo di b2 (se qualcuno lo conosce), questo file è stato creato per dare ai siti un modo per comunicare tra loro e per consentire ad altre applicazioni di comunicare con il blog stesso.

Che cos’è XMLRPC?

Il nome ti dice tutto ciò che devi sapere sulla sua funzionalità.

XML – è stato progettato per accettare payload in XML. In questi giorni JSON è un formato molto più comune, ma XMLRPC precede JSON di un bel po’.

RPC – sta per Remote Procedure Call. Era uno standard in base al quale un sistema poteva chiedere a un altro sistema di fare qualcosa. In questi giorni usiamo le API (REST o Graph API) per fare la stessa cosa ma, prima che esistessero, RPC era uno dei modi per eseguire queste procedure.

Come funziona XMLRPC?

Per fare in modo che XMLRPC.php faccia qualcosa, devi fare una richiesta POST. Se non conosci il funzionamento dei browser, questo passaggio è fondamentalmente come cliccare sul pulsante Invia in un modulo, che solitamente avvia proprio una richiesta POST.

Se fai una richiesta POST a tuodominio.tld/xmlrpc.php e gli dai un payload XML correttamente formattato, puoi fare cose come creare un post sul tuo sito.

Una delle cose per cui XMLRPC veniva usato molto in passato erano i “pingback”. Quei commenti che vedi sui post che mostrano che qualcun altro si lo ha linkato sul proprio blog.

Potenziali minacce alla sicurezza provenienti da XMLRPC di WordPress

Per molto tempo XMLRPC è stato uno strumento utile. Oggi non è più così. Al giorno d’oggi tutte le funzionalità per cui veniva utilizzato XMLRPC sono gestite dalle API REST integrate. Tuttavia, anche se non è più utilizzato è ancora in giro. Chi ha nostalgia di queste cose lo vede e sorride, ma chi è attento alla sicurezza lo teme.

XMLRPC pone un paio di rischi per la sicurezza dei siti WordPress che possono provocare gravi attacchi XMLRPC.

Attacchi di brute-force tramite XMLRPC

Il primo tipo di attacco XMLRPC è un semplice Brute-Force. Poiché parte del payload XML che viene passato a WordPress contiene il login e la password dell’utente che vuole intraprendere l’azione, è facile che gli hacker provino diverse combinazioni per individuare le credenziali. Molti proprietari di siti limitano il numero di tentativi di login che un utente può effettuare prima di essere bloccato, ma non si preoccuperanno di bloccare le richieste XMLRPC, lasciando così una backdoor aperta agli hacker per cercare di trovare un modo per entrare.

Una volta che un hacker trova le credenziali corrette, è libero di compromettere il tuo sito inserendo contenuti nel database del tuo sito. Che si tratti di post, pagine o solo commenti, il risultato finale è lo stesso. Il contenuto che non hai approvato e che molto probabilmente non desideri viene pubblicato sul tuo sito.

Nella migliore delle ipotesi, questo significa commenti e post di spam. Nel peggiore dei casi, potrebbero essere post o commenti all’apparenza normali ma nei quali a cui è stato inserito un malware.

Attacchi DDoS tramite XMLRPC

Poiché uno dei modi in cui veniva utilizzato XMLRPC era il pingback, gli hacker possono usarlo per sopraffare il tuo server emettendo molte richieste tutte in una volta.

Un pingback scrive un record nel tuo database. Scrivere nel database è un’attività costosa, in termini di risorse. Mentre un singolo pingback non danneggia le prestazioni del tuo sito, centinaia o addirittura migliaia di essi contemporaneamente possono mettere in ginocchio anche il server più robusto.

Questo è chiamato attacco DDos o Distributed Denial of Service. “Distribuito” perché di solito non è una singola macchina a fare tutte le richieste, di solito è un intero gruppo di macchine sparse ovunque.

Iscriviti per
altri fantastici contenuti!

Iscriviti per ricevere la nostra newsletter mensile con gli ultimi contenuti utili e le offerte SiteGround.

Grazie!

Per favore, controlla la tua email per confermare l’iscrizione.

Come disabilitare XMLRPC in WordPress

Ci sono alcuni modi per disabilitare XMLRPC. Consiglio vivamente di farlo perché onestamente non ne hai bisogno.

File di configurazione del tuo webserver

Se hai familiarità nel bloccare le richieste tramite i file di configurazione del tuo webserver e se hai accesso a questi file, è il miglior modo per disabilitare XMLRPC. Per Apache, puoi aggiungere questo codice al file .htaccess nella directory principale del tuo sito.

<Files xmlrpc.php>

order deny,allow

deny from all

</Files>

Questo lo bloccherà subito.

File functions.php del tuo tema

Se non hai familiarità con i file di configurazione del tuo webserver, puoi aggiungere una singola riga di codice al file functions.php del tuo tema.

add_filter( ‘xmlrpc_enabled’, ‘__return_false’ );

Assicurati di farlo correttamente, ci sono 2 underscore prima della parola “return”. Questo dirà a WordPress che non vuoi accettare richieste XMLRPC.

Installa un plugin

Infine, se non vuoi preoccuparti di aggiungere codice al functions.php del tuo tema, puoi disabilitare XMLRPC in WordPress installando un plugin. (nota: il plug fa esattamente la stessa cosa del suggerimento precedente). Ci sono diversi buoni plugin gratuiti che lo fanno e potresti già avere questa funzionalità se hai installato un plugin di Application Firewall.

In caso contrario, lasciami consigliare il mio preferito e quello che uso su tutti i miei siti per disattivare XMLRPC: SiteGround Security Plugin. Anche se non hai siti ospitati su SiteGround, puoi utilizzare questo plugin gratuito per gestire diverse impostazioni di sicurezza. Se vuoi solo bloccare XMLRPC, disattiva tutte le altre opzioni. Questa è una delle cose che amo di questo plugin, tutto è facoltativo.

XMLRPC ci ha servito bene in passato, ma i sui giorni sono finiti. È tempo di lasciarlo andare in pensione. Fino a quando gli sviluppatori di WordPress non decidono che è il momento di rimuoverlo, devi proteggere te stesso e il tuo sito disabilitandolo.

author avatar
Cal Evans

PHP Evangelist

Una delle persone più amate della community PHP, ha dedicato oltre 16 anni allo sviluppo della straordinaria comunità PHP e al tutoring della nuova generazione di sviluppatori. Siamo estremamente onorati che sia anche un amico molto speciale di SiteGround.

WordPress

Inizia la discussione

Sei pronto a iniziare il tuo sito?

Scegli un piano di hosting, crea o trasferisci il tuo sito in pochi click e fai crescere la tua presenza online!

Inizia subito Parla con un esperto