Come blocco l'enumerazione degli utenti e nascondo i nomi utente in WordPress?
Di Eureka Studio · Aggiornato il
In breve
WordPress mostra i nomi utente in quattro punti pubblici: l'endpoint REST /wp-json/wp/v2/users, i reindirizzamenti di ?author=1, gli URL degli archivi autore e la sitemap degli utenti di base. Per bloccare l'enumerazione degli utenti, chiudi l'elenco REST ai visitatori non connessi, ferma le scansioni ?author=, rimuovi la sitemap degli utenti e rendi identici i messaggi di errore del login. Un plugin può fare tutte e quattro le cose; poi verificale una per una.
Passaggi
1Passaggio 1
Guarda cosa mostra WordPress oggi
Visita tuosito.com/wp-json/wp/v2/users senza aver effettuato l'accesso. In un'installazione predefinita ottieni un elenco JSON con il nome di login di ogni autore nel campo slug.
2Passaggio 2
Prova la scansione degli autori
Ora visita tuosito.com/?author=1. WordPress reindirizza a /author/tuo-nome-utente/, mettendo il nome nella barra degli indirizzi. I bot contano 1, 2, 3 per raccogliere tutti gli utenti.
3Passaggio 3
Chiudi i quattro punti
Apri Hushfort → Hardening della superficie e attivalo. Lascia attivi Elenco utenti REST, Scansione autori ("Blocca le scansioni ?author=1"), Elenco autori nella sitemap e Informazioni autore oEmbed, poi salva.
4Passaggio 4
Verifica di nuovo da una finestra privata
Ripeti le stesse richieste senza essere connesso. Ora l'elenco utenti risponde "rest_no_route" con un 404, e ?author=1 non reindirizza più a un nome utente.
Perché è importante
Bloccare l'enumerazione degli utenti in WordPress significa smettere di regalare ai bot i nomi di login del tuo sito. Per accedere, a un attaccante servono due cose: un nome utente e una password. WordPress, appena installato, gli consegna la prima metà. Non è un bug; ogni punto esiste per un motivo (feed per le app, URL degli autori leggibili, motori di ricerca). Ma insieme permettono a qualsiasi bot di costruire in pochi secondi l'elenco di tutti i nomi di login del tuo sito.
Nascondere i nomi utente non rende sicura una password debole. Toglie però la metà facile del rompicapo, così ogni tentativo deve indovinare sia un nome sia una password. Abbinato ai limiti di login e all'accesso a due fattori, trasforma i tentativi da lenti a senza speranza.
I quattro punti in cui WordPress pubblica i nomi utente:
- REST API —
/wp-json/wp/v2/userselenca gli autori con il loro slug, che di solito coincide con il nome di login. - Scansioni degli autori —
/?author=1reindirizza a/author/nome-di-login/. - Archivi autore — l'URL dell'archivio contiene lo slug dell'autore.
- Sitemap di base —
/wp-sitemap-users-1.xmlelenca gli URL degli archivi autore. Anche le risposte oEmbed possono includere informazioni sull'autore.
Errori comuni
- Sistemare un punto e considerare il lavoro finito. Chiudere
?author=lasciando aperto l'elenco REST non cambia nulla per un bot. Controlla tutti e quattro. - Nome pubblico uguale al nome di login. Anche con ogni fuga chiusa, un tema che stampa "Pubblicato da admin" rivela il nome. Imposta un nome pubblico diverso in Utenti → Profilo.
- Rompere le vere pagine autore. Su un blog con più autori, gli archivi autore sono utili. Blocca le scansioni numeriche invece degli archivi stessi.
- Errori di login dettagliati. "La password inserita per il nome utente jane non è corretta" conferma che il nome esiste. Usa un solo messaggio per entrambi i casi.
Senza plugin
Puoi coprire gran parte di questo con un plugin must-use (wp-content/mu-plugins/hide-users.php):
<?php
// 1. REST user list: logged-out visitors get nothing.
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );
// 2. ?author=N scans: stop the redirect that reveals the name.
add_action( 'template_redirect', function () {
if ( isset( $_GET['author'] ) && ! is_admin() ) {
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
} );
// 3. Core sitemap: drop the users provider.
add_filter( 'wp_sitemaps_add_provider', function ( $provider, $name ) {
return 'users' === $name ? false : $provider;
}, 10, 2 );
// 4. Same message for wrong username and wrong password.
add_filter( 'login_errors', function () {
return 'The username or password is incorrect.';
} );
Avvertenze: provalo prima su un sito di staging, perché temi e plugin a volte leggono l'elenco utenti REST. Questo non cambia lo slug dell'autore negli URL degli archivi; per quello, cambia il nicename di ogni autore o usa un plugin per il nome pubblico. Ed è un file in più da tenere a mente quando sposti o ricostruisci il sito.
Se qualcosa va storto
- Un'integrazione ha perso l'elenco degli autori. Alcuni strumenti esterni leggono
/wp/v2/userssenza accedere. Dai loro una password delle applicazioni così si autenticano, oppure consenti di nuovo l'elenco. - Le pagine autore mostrano un 404. Hai scelto di disattivare completamente gli archivi autore. Passa all'opzione che blocca solo le scansioni numeriche.
- Il plugin SEO elenca ancora gli autori. Molti plugin SEO generano una propria sitemap degli autori. Disattiva le sitemap degli autori anche in quel plugin.
Con Hushfort
Hushfort Security è un plugin di sicurezza gratuito per WordPress; Hushfort Pro è il componente aggiuntivo a pagamento che si installa sopra. Lo Scudo nomi utente fa parte di Hushfort Pro. La Scansione della superficie, che mostra cosa trapela ancora, è inclusa nel plugin gratuito.
Lo Scudo nomi utente, parte del livello Hardening della superficie di Hushfort, chiude tutti e quattro i punti da un'unica schermata:
- blocca l'elenco REST
/wp/v2/usersai visitatori non connessi, - blocca le scansioni
?author=Nmantenendo gli archivi/author/nome/(o, se preferisci, disattiva del tutto gli archivi), - rimuove la sitemap degli utenti di base e i dati dell'autore dalle risposte oEmbed,
- rende identici i messaggi di errore del login per un nome utente sbagliato e per una password sbagliata.
Poi la Scansione della superficie verifica ogni punto con richieste reali e indica qualsiasi nome utente che trapela ancora.
Domande frequenti
Cos'è l'enumerazione degli utenti in WordPress?
È un rischio per la sicurezza se il mio nome utente è visibile?
Bloccare l'elenco utenti REST rompe l'editor?
Posso tenere le pagine di archivio degli autori?
Perché contano i messaggi di errore del login?
Guide correlate
Come faccio un controllo di sicurezza su ciò che espone il mio sito WordPress?
Un controllo di sicurezza WordPress fatto come lo farebbe un bot: cinque richieste mostrano se login, XML-RPC e nomi utente sono esposti, e come chiuderli.
Leggi i passaggiCos'è xmlrpc.php e come disabilito XML-RPC in WordPress?
xmlrpc.php è una seconda porta di login che nascondere wp-login.php non chiude. Come disabilitare XML-RPC, tenere i pingback e verificare il risultato.
Leggi i passaggiCome limito i tentativi di accesso (login) in WordPress?
Limita i tentativi di accesso a WordPress e ferma il brute force: blocca un IP dopo pochi login falliti. Impostazioni, codice manuale e falle da chiudere.
Leggi i passaggi



