Glossario

Cos'è XML-RPC?

8 febbraio 2026 Aggiornato il 19 apr 2026

XML-RPC è una di quelle funzionalità di WordPress di cui la maggior parte dei proprietari di siti non ha mai sentito parlare — eppure funziona silenziosamente in background da oltre dieci anni su praticamente ogni installazione WordPress. Il file xmlrpc.php si trova nella directory principale e accetta richieste dall'esterno. In origine era l'unico modo per gestire un blog WordPress da remoto. Oggi è principalmente un rischio per la sicurezza che gli aggressori amano sfruttare.

Cosa fa effettivamente XML-RPC

XML-RPC sta per Extensible Markup Language – Remote Procedure Call. In termini semplici, è un modo per il software esterno di comunicare con il tuo sito WordPress tramite HTTP. L'applicazione esterna invia una richiesta XML formattata in modo speciale a tuosito.com/xmlrpc.php, WordPress la elabora e restituisce una risposta XML.

Tramite questa interfaccia, i client esterni possono fare cose come:

  • Creare, modificare ed eliminare articoli e pagine
  • Caricare immagini e altri media
  • Moderare e gestire i commenti
  • Recuperare la configurazione del sito e i metadati
  • Inviare e ricevere pingback tra blog

Pensalo come un'API primitiva — funzionale, ma progettata in un'epoca prima che la REST API fosse diffusa.

Un po' di storia

A metà degli anni 2000, XML-RPC era la tua unica opzione se volevi scrivere un post del blog dal tuo telefono o da un'app desktop come Windows Live Writer. WordPress adottò la MetaWeblog API e la Blogger API, entrambe basate su XML-RPC, per consentire a questi strumenti di comunicare con il tuo sito.

Nel 2016, WordPress 4.7 fu rilasciato con la REST API integrata. Improvvisamente c'era un modo moderno e standardizzato di comunicare con WordPress — uno che utilizza JSON invece di XML, supporta un'autenticazione decente ed è molto più facile da usare. Da quel momento, XML-RPC divenne un cimelio. La maggior parte dei plugin, app e integrazioni moderne utilizza esclusivamente la REST API.

Perché XML-RPC è un problema di sicurezza

Il file è pubblicamente accessibile per impostazione predefinita su ogni sito WordPress. Già questo non è ideale, ma i veri problemi sono più profondi:

  • Amplificazione brute-force — XML-RPC ha un metodo chiamato system.multicall che ti permette di raggruppare centinaia di richieste in una sola. Un aggressore può testare 500 combinazioni nome utente-password in un'unica richiesta HTTP. Molti plugin di protezione del login non se ne accorgono nemmeno, perché monitorano solo wp-login.php.
  • Abuso dei pingback — La funzionalità pingback può essere sfruttata per attacchi DDoS. Un aggressore fa "pingare" un server bersaglio da migliaia di siti WordPress, trasformando di fatto siti innocenti in una botnet. Questo è accaduto ripetutamente nella pratica.
  • Enumerazione dei nomi utente — Anche senza credenziali valide, le risposte XML-RPC possono confermare se un nome utente esiste, fornendo agli aggressori metà delle informazioni di cui hanno bisogno.
  • Superficie di attacco non necessaria — Ogni endpoint pubblicamente accessibile che accetta l'autenticazione è un potenziale punto di ingresso. Se non utilizzi XML-RPC, tenerlo aperto è come avere una porta non bloccata che non viene mai usata.

Chi ne ha davvero ancora bisogno?

La risposta onesta: praticamente nessuno. Ci sono alcune eccezioni:

  • Jetpack in passato si appoggiava pesantemente a XML-RPC, ma è passato alla REST API. Le versioni più recenti di Jetpack funzionano senza XML-RPC per la maggior parte delle funzionalità.
  • App mobili molto vecchie — L'attuale app mobile di WordPress utilizza la REST API. Solo le versioni obsolete precedenti al 2016 hanno ancora bisogno di XML-RPC.
  • Strumenti di terze parti obsoleti — Alcune ricette IFTTT antiche o piattaforme di pubblicazione potrebbero ancora usarlo, ma per tutte queste esistono alternative.

Se nessuno di questi casi si applica a te, non c'è una buona ragione per lasciare XML-RPC abilitato.

Come disabilitare XML-RPC

Il metodo più rapido è un filtro nel functions.php del tuo tema o un plugin personalizzato:

add_filter('xmlrpc_enabled', '__return_false');

Questo disabilita i metodi XML-RPC, ma il file restituisce comunque una risposta. Per bloccare completamente l'accesso a livello di server, aggiungi questo al tuo .htaccess:

<Files xmlrpc.php>
  Require all denied
</Files>

Oppure se usi Nginx:

location = /xmlrpc.php {
  deny all;
  return 403;
}

Molti plugin di sicurezza (Wordfence, iThemes Security, Sucuri) offrono anche un interruttore per disabilitare XML-RPC con un clic.

Come aiuta InspectWP

InspectWP verifica se il tuo endpoint xmlrpc.php è raggiungibile dall'esterno. Se risponde alle richieste, il report lo segnala e spiega perché dovresti considerare di disabilitarlo — soprattutto se il tuo sito non ha una ragione legittima per tenerlo attivo.

Controlla subito il tuo sito WordPress

InspectWP analizza il tuo sito WordPress per problemi di sicurezza, problemi SEO, conformità GDPR e prestazioni — gratuitamente.

Analizza gratis il tuo sito