Migliorare la sicurezza di un sito wordpress è un’attività molto importante; fra le varie funzionalità di un’installazione WP possiamo individuarne alcune che, spesso superflue, potrebbero aprire la porta ad hacker e script malevoli, fra queste esaminiamo XML-RPC

Cos’è XML-RPC?

XML-RPC è una  procedura di chiamata  remota che utilizza XML per codificare le sue chiamate e HTTP come meccanismo di trasporto; si tratta di un sistema che  permette di pubblicare sul vostro blog WordPress utilizzando client weblog popolari come Windows Live Writer.
XML-RPC abilitato è necessario soprattutto se si utilizzano le applicazioni mobile di WordPress che consentono la gestione di un sito WP come ADMIN ; è anche necessario se necessitano connessioni ai servizi come IFTTT o se si ha il plugin JETPACK installato
In breve: se si desidera accedere e pubblicare il blog in remoto, allora avete bisogno di XML-RPC abilitata.

In passato, ci sono stati problemi di sicurezza con XML-RPC Così è stato disabilitato per default. Nel suo commento sul ticket trac # 21509, @nacin uno dei collaboratori principali di WordPress ha detto:

[textblock style=”3″]Molto è cambiato da quando abbiamo introdotto off-by-default per XML-RPC. Il codice è migliorato, e non è più considerato una funzione di seconda classe quando si tratta di sviluppo di API, grazie al lavoro di una grande squadra di collaboratori impressionante. La sicurezza non è una  preoccupazione maggiore di quelle che riguardano altre componenti del CORE.

Non c’è più un motivo valido per disabilitare questa impostazione per default. Credo sia ora  di rimuovere l’opzione del tutto[/textblock]

Con il crescente uso dei dispositivi di tipo “mobile”, questo cambiamento era imminente. Tuttavia volendo essere prudenti possiamo dire che, pur non ritenendo XML-RPC un grave problema di sicurezza, questo fornisce comunque un gate di accesso per riscontrare vulnerabilità che non riguardano il componente in particolare ma eventualmente altri componenti. Il mantenimento del “disable” avrebbe probabilmente un senso.
Per mettere tutti d’accordo mentre l’opzione di disabilitare  XML-RPC è stato rimossa dall’interfaccia admin, vi è un filtro che è possibile utilizzare per disabilitarlo, se necessario.

add_filter('xmlrpc_enabled', '__return_false');

con l’uso di questo filtro si ottiene la disabilitazione dell’ XML-RPC.

Rimuovere XML-RPC con .htaccess

Mentre la soluzione di cui sopra è sufficiente per la maggior parte dei siti, in caso di server con attacchi frequenti il consumo di risorse ( dovuto alle chiamate ripetitive degli spam bot) può ancora essere un problema critico.

In questi casi, si consiglia di disabilitare tutte le richieste xmlrpc.php dal file .htaccess prima che la richiesta passi su WordPress.

Basta incollare il seguente codice nel file .htaccess:

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

Nel nostro caso, non avendo necessità di gestire il sito da remoto tramite APP abbiamo deciso di disabilitare XML-RPC