Glossario

Cos'è la WordPress REST API?

8 febbraio 2026 Aggiornato il 19 apr 2026

La WordPress REST API è un'interfaccia integrata che consente ad applicazioni esterne, frontend JavaScript, app mobili e servizi di terze parti di comunicare con il tuo sito WordPress tramite richieste HTTP standard e dati JSON. È stata inclusa nel core di WordPress nella versione 4.7 (dicembre 2016) e da allora è diventata la spina dorsale dello sviluppo WordPress moderno, alimentando di tutto, dall'editor a blocchi Gutenberg alle architetture WordPress headless.

Prima dell'esistenza della REST API, l'unico modo programmatico di comunicare con WordPress dall'esterno era tramite XML-RPC, un protocollo più vecchio e molto più limitato. La REST API ha sostituito questo approccio con qualcosa di molto più flessibile, ma ha anche introdotto nuove considerazioni di sicurezza che ogni proprietario di sito WordPress dovrebbe comprendere.

Endpoint standard e cosa espongono

La REST API vive su /wp-json/wp/v2/ in ogni installazione WordPress. Out of the box espone una vasta gamma di endpoint:

  • /wp-json/wp/v2/posts: restituisce tutti i post pubblicati con il loro contenuto completo, ID autore, categorie, tag e riferimenti alle immagini in evidenza.
  • /wp-json/wp/v2/pages: come i post, ma per le pagine statiche.
  • /wp-json/wp/v2/users: mostra tutti gli utenti che hanno pubblicato almeno un post. Questo è l'endpoint standard più sensibile dal punto di vista della sicurezza.
  • /wp-json/wp/v2/categories e /wp-json/wp/v2/tags: restituiscono i termini delle tassonomie con descrizioni e conteggi dei post.
  • /wp-json/wp/v2/comments: mostra i commenti pubblici, inclusi i nomi dei commentatori e a volte indirizzi email se il sito è configurato male.
  • /wp-json/wp/v2/media: mostra i file media caricati con URL, dimensioni e metadati.
  • /wp-json/wp/v2/search: offre un endpoint di ricerca che rispecchia la funzione di ricerca integrata del sito.
  • /wp-json/ (la root): restituisce un indice completo di tutti i namespace e route API registrati, rivelando ogni plugin che registra propri endpoint API.

I plugin aggiungono spesso i propri namespace. WooCommerce aggiunge /wp-json/wc/v3/, Yoast SEO aggiunge endpoint sotto il suo namespace, e i plugin di moduli di contatto possono esporre endpoint di invio. L'indice root dell'API rivela tutti questi, dando a un aggressore un quadro chiaro di quali plugin sono installati.

Il rischio di enumerazione utenti

L'endpoint /wp-json/wp/v2/users è la preoccupazione di sicurezza più discussa intorno alla REST API. Per impostazione predefinita, chiunque può visitare questo endpoint e ottenere una risposta JSON con tutti gli utenti che hanno scritto contenuti. Ogni voce utente contiene il loro nome utente (il campo slug), nome visualizzato, ID utente, URL avatar e un link al loro archivio autore.

Perché è importante? Perché i nomi utente costituiscono metà dell'equazione di accesso. Se un aggressore sa che il tuo account di amministratore usa il nome utente sarah_admin, deve solo indovinare la password (o forzarla con brute force). Senza la REST API, scoprire i nomi utente richiedeva più sforzo, come indovinare URL di archivio autore come /?author=1. La REST API condivide queste informazioni liberamente, in un formato strutturato e leggibile dalla macchina.

Questa non è una preoccupazione teorica. I bot automatizzati eseguono routinariamente scraping di /wp-json/wp/v2/users sui siti WordPress per costruire elenchi di target per credential stuffing e attacchi di brute force. Se il tuo sito ha un utente con il nome admin, quell'account è il primo bersaglio.

Metodi di autenticazione per la REST API

Le richieste non autenticate alla REST API restituiscono solo dati pubblicamente disponibili (post pubblicati, profili utente pubblici, ecc.). Per creare, aggiornare o eliminare contenuti tramite l'API, è necessaria l'autenticazione. WordPress supporta diversi metodi:

  • Autenticazione cookie: questo è ciò che usa l'editor Gutenberg. Quando sei loggato in WordPress, il tuo browser invia cookie di sessione a ogni richiesta API. Un valore nonce previene la falsificazione di richieste cross-site. Questo metodo funziona solo all'interno del contesto del browser.
  • Application Passwords: introdotte in WordPress 5.6, con cui puoi generare password uniche per ogni applicazione che necessita di accesso API. Ogni application password è collegata a un account utente specifico. Puoi revocarle singolarmente senza modificare la tua password principale. Vengono inviate tramite HTTP Basic Auth e funzionano solo su HTTPS.
  • JWT (JSON Web Tokens): non integrato nel core di WordPress, ma disponibile tramite plugin come "JWT Authentication for WP REST API". JWT è popolare per le configurazioni WordPress headless in cui un'applicazione frontend deve autenticare gli utenti e fare chiamate API per loro conto.
  • OAuth: anche disponibile tramite plugin. OAuth è il metodo preferito quando applicazioni di terze parti hanno bisogno di accedere all'API del tuo sito per conto dei tuoi utenti, perché evita la condivisione diretta delle password.

Quando hai effettivamente bisogno della REST API

La REST API non è una funzionalità opzionale che puoi disabilitare con leggerezza. È profondamente integrata nel core di WordPress e molti plugin ne dipendono:

  • Editor a blocchi Gutenberg: l'intera esperienza di modifica si basa sulla REST API. Ogni volta che crei, salvi o visualizzi un post nell'editor a blocchi, comunica con la REST API. Disabilitarla ti costringerebbe a tornare al Classic Editor.
  • WordPress headless: se usi WordPress come backend di content management con un frontend separato in React, Vue, Next.js o Nuxt, la REST API (o la sua controparte più recente WPGraphQL) è il modo in cui il frontend recupera i contenuti.
  • App mobili: l'app mobile ufficiale di WordPress comunica con il tuo sito tramite la REST API. Anche molte app personalizzate per siti di membership, piattaforme di apprendimento o media di notizie la usano.
  • Funzionalità dei plugin: molti plugin moderni si affidano alla REST API per le loro interfacce di amministrazione. I plugin che usano React o Vue per le loro pagine di impostazioni fanno chiamate API in background. WooCommerce, Jetpack, Yoast SEO e decine di altri non funzionerebbero senza di essa.
  • Integrazioni di terze parti: Zapier, IFTTT e strumenti di automazione simili possono interagire con il tuo sito WordPress tramite la REST API, abilitando flussi di lavoro come la creazione automatica di post da invii di moduli o la sincronizzazione di contenuti tra piattaforme.

Hardening della sicurezza senza rompere le cose

L'approccio corretto non è disabilitare completamente la REST API, ma limitare le parti che espongono informazioni sensibili. Ecco passi pratici:

  • Limita l'endpoint utenti: richiedi l'autenticazione per /wp/v2/users. Diversi plugin di sicurezza lo offrono con un solo interruttore. Puoi anche aggiungere uno snippet a functions.php del tuo tema o a un plugin personalizzato che si aggancia a rest_authentication_errors per bloccare l'accesso non autenticato a endpoint specifici.
  • Rimuovi il link REST API dall'HTML: WordPress aggiunge un tag <link rel="https://api.w.org/"> nell'head HTML, che annuncia l'URL dell'API. Rimuoverlo non disabilita l'API, ma smette di rendere nota la posizione agli scanner automatici.
  • Disabilita anche XML-RPC: se stai proteggendo la REST API, disabilita anche la più vecchia interfaccia XML-RPC (/xmlrpc.php), che ha la sua collezione di vulnerabilità di brute force e DDoS.
  • Usa un plugin firewall: plugin come Wordfence, Sucuri o iThemes Security possono limitare l'accesso API in base all'indirizzo IP, bloccare bot malevoli noti e aggiungere rate limiting per prevenire abusi automatizzati.
  • Rimuovi endpoint di plugin inutilizzati: se un plugin registra route API di cui non hai bisogno, usa il filtro rest_endpoints per rimuoverle. Riduce la tua superficie di attacco e previene anche la fuga di informazioni su quali plugin hai installato.

Cosa controlla InspectWP

InspectWP verifica se la REST API è pubblicamente accessibile cercando il tag <link rel="https://api.w.org/"> nel codice sorgente HTML del tuo sito. Inoltre, testa se l'endpoint /wp-json/wp/v2/users restituisce dati utente senza autenticazione, il che indicherebbe un rischio di enumerazione utenti. Se il tag link API è presente, InspectWP segnala l'URL REST API trovato. Se i dati utente sono esposti, viene segnalato come preoccupazione di sicurezza con la raccomandazione di limitare quell'endpoint a sole richieste autenticate.

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