Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

⚙️ All In One WP Security: configurazione della sicurezza WordPress passo dopo passo in 16 passaggi

⚙️ All In One WP Security: configurazione della sicurezza WordPress passo dopo passo in 16 passaggi

Ogni giorno un sito WordPress medio riceve da 200 a 500 richieste illegittime a wp-login.php. Non si tratta di hacker col cappuccio, ma di script. Setacciano la rete, trovano la pagina di login standard e iniziano il brute force: admin/123456, admin/qwerty, admin/password_da_database_trafugato. Prima o poi la indovinano.

L'hosting non protegge da questo. Il firewall del server vede una richiesta POST legittima a wp-login.php e la lascia passare, non può distinguere se stai inserendo una password o se lo sta facendo un bot. La protezione di WordPress e la protezione del server sono due livelli diversi, e il primo è responsabilità tua.

All-In-One Security (AIOS) del team UpdraftPlus copre questo livello in modo completo. Un plugin unico invece di un pacchetto: firewall, protezione del login, auditing dei file, blocco dei bot e backup. Un milione di installazioni, valutazione 4.7 su WordPress.org. La versione gratuita è sufficiente per proteggere un sito medio. Di seguito trovi una configurazione passo passo, dalle basi all'esportazione della configurazione.

💡 Panoramica rapida:

  • Nasconderemo la pagina di login dietro un URL personalizzato e attiveremo l'autenticazione a due fattori. Gli attacchi brute force falliranno all'istante.
  • Configureremo tre livelli di firewall: regole htaccess più regole PHP più blacklist 6G. Filtraggio stratificato delle richieste.
  • Bloccheremo l'accesso ai file di servizio, disabiliteremo l'editor PHP dal pannello di amministrazione e verificheremo i permessi delle cartelle.
  • Attiveremo honeypot e rilevamento errori 404. I bot saranno filtrati prima di atterrare, senza captcha per gli utenti.
  • Salveremo la configurazione pronta in un file per trasferirla tra siti in un minuto.

Step 1. Rimuovere i meta dati del generatore WP

La prima cosa che fa trapelare la versione di WordPress è il tag <meta name="generator" content="WordPress X.X.X"> nell'<head> di ogni pagina. Un aggressore ottiene il numero esatto della versione e seleziona gli exploit adatti in pochi secondi. AIOS rimuove questo tag con un solo interruttore.

Percorso: WP SecuritySettingsGeneral Settings. Attiva Remove WP Generator Meta Info e salva. Controlla il codice sorgente della tua homepage (Ctrl+U), la riga con generator dovrebbe sparire. Sempre in questa sezione, disattiva Enable Info Comments, AIOS di default aggiunge commenti HTML con informazioni di servizio, meglio rimuovere anche quelli.

Configurazione rimozione meta tag WP Generator in AIOS

Step 2. Bloccare i tentativi di login

Il brute force su wp-login.php è l'attacco numero uno per frequenza. I bot provano centinaia di password al minuto, generando carico sul server e sul database. Prima o poi una password debole viene violata, specialmente se un utente admin o editor usa qwerty123.

Percorso: WP SecurityUser LoginLogin Lockdown. Attiva Enable Login Lockdown e imposta: massimo 5 tentativi, blocco IP per 60 minuti, reset del contatore dopo 24 ore. Per i siti con più amministratori, attiva Notify by Email, la notifica di blocco arriva all'istante. Se vedi notifiche frequenti, cambia lo slug della pagina di login (step 14).

Configurazione limite tentativi di login in AIOS

Step 3. Approvazione manuale per le nuove registrazioni

Se la registrazione è aperta sul tuo sito, senza questa impostazione qualsiasi bot crea un account in pochi secondi. Gli account spam si accumulano a migliaia, intasando il database e creando superficie d'attacco tramite escalation dei privilegi.

Percorso: WP SecurityUser RegistrationManual Approval. Attiva Enable Manual Approval. Ora ogni nuovo account attende la conferma dell'amministratore prima dell'attivazione. In questa stessa sezione, configura il captcha per i moduli di registrazione, una barriera aggiuntiva che i bot non possono superare.

Moderazione manuale registrazione utenti in AIOS

Step 4. Cambiare il prefisso delle tabelle del database

Il prefisso wp_ è standard per tutte le installazioni WordPress. Le SQL injection e gli script di compromissione di massa lo prendono di mira in modo specifico: quando un exploit conosce i nomi delle tabelle (wp_users, wp_options), l'attacco diventa mirato anziché alla cieca.

Percorso: WP SecurityDatabaseDB Prefix. Vedi il prefisso attuale. Se è wp_, clicca Change DB Table Prefix. Il plugin suggerirà una stringa casuale o ti permetterà di inserirne una tua (4-6 caratteri, solo lettere latine e underscore). Prima di eseguire, fai assolutamente un backup del database (step 5). Il processo richiede 5-10 secondi su un sito medio, ma il rollback senza backup è impossibile.

Modifica del prefisso standard delle tabelle del database WordPress

Step 5. Backup del database

Prima di qualsiasi modifica strutturale, cambio di prefisso, pulizia delle revisioni, aggiornamento del core, il backup è obbligatorio. AIOS è integrato con UpdraftPlus, il backup si avvia dalla stessa interfaccia.

Percorso: WP SecurityDatabaseDatabase Backup. Clicca Create Database Backup, il file viene salvato localmente. Configura il caricamento automatico su cloud tramite UpdraftPlus (Google Drive, Dropbox, S3) e la pianificazione giornaliera. Ripristinare un sito dopo una compromissione senza backup è praticamente impossibile, mentre con AIOS + UpdraftPlus è un clic.

Creazione di un backup del database tramite AIOS

Step 6. Verificare i permessi di directory e file

Permessi di accesso errati, 777 su wp-config.php, 666 sulla cartella uploads, accesso in scrittura aperto a wp-content, aprono una via diretta per la scrittura di codice malevolo. Se un aggressore ottiene accesso a un tema tramite una vulnerabilità, i permessi errati gli consentono di modificare i file di sistema.

Percorso: WP SecurityFilesystem SecurityFile Permissions. Avvia la scansione. Tutte le righe dovrebbero essere verdi. Riga rossa o gialla, clicca Set Recommended Permissions accanto al file o alla cartella problematica. Dopo la correzione, riavvia la scansione, dovrebbe risultare pulita.

Scansione dei permessi di file e cartelle di WordPress

Step 7. Disabilitare la modifica PHP dal pannello di amministrazione

L'editor integrato di temi e plugin, wp-admin/theme-editor.php e wp-admin/plugin-editor.php, è una via diretta per l'esecuzione di codice arbitrario. Se un utente malevolo ottiene accesso al pannello di amministrazione, l'editor consente di aggiungere una shell PHP a functions.php e prendere il controllo del server. Uno sviluppatore professionista non ha bisogno di questo editor: le modifiche si fanno via FTP/SFTP o tramite deploy.

Percorso: WP SecurityFilesystem SecurityPHP File Editing. Attivare Disable PHP File Editing. Dopo il salvataggio, le voci «Theme Editor» e «Plugin Editor» scompariranno dai menu «Appearance» e «Plugins». Se serve fare modifiche, solo tramite il file manager dell'hosting o SSH.

Disabilitazione dell'editor PHP per temi e plugin di WordPress

Step 8. Bloccare l'accesso ai file di servizio di WordPress

readme.html, license.txt, wp-config-sample.php e debug.log rivelano la versione del CMS, la struttura dell'installazione e i percorsi interni. debug.log è particolarmente pericoloso: in modalità WP_DEBUG scrive percorsi assoluti del server e stack trace degli errori con i nomi dei plugin.

Percorso: WP SecurityFilesystem SecurityWP Info Files. Spuntare tutte e quattro le voci: readme.html, license.txt, wp-config-sample.php, debug.log. Salvare. Ora, richiedendo direttamente yoursite.com/readme.html, il server restituirà 403 Forbidden. Si tratta di regole .htaccess, che agiscono a livello Apache/Nginx prima che PHP venga avviato.

Blocco dell'accesso ai file di servizio WordPress tramite AIOS

Step 9. Funzioni base del firewall

Il firewall di AIOS ha tre livelli di protezione. Le regole .htaccess bloccano le richieste prima che vengano passate a PHP (il livello più veloce). Le regole PHP filtrano i vettori XSS, disabilitano XML-RPC e i feed RSS. Il terzo livello blocca i finti bot di Google in base allo user-agent.

Percorso: WP SecurityFirewallBasic Firewall. Attivare:

  • Enable Basic Firewall Protection, attivazione generale;
  • Block Fake Googlebots, vengono filtrati i bot con user-agent Googlebot falso;
  • Disable RSS and Atom Feeds, se il sito non usa RSS, disabilitare (parsing dei contenuti);
  • Disable Directory Listing, impedisce ad Apache di mostrare il contenuto delle cartelle in assenza di index.php.

Qui disabilitare anche XML-RPC se non si utilizza l'app mobile di WordPress, Jetpack o i trackback. Per la maggior parte dei siti blog nel 2026, XML-RPC non è necessario.

Impostazioni di base per il firewall a tre livelli di AIOS

Passo 10. Regole firewall aggiuntive

Le regole estese di .htaccess chiudono diversi altri vettori di attacco: accesso diretto via browser a wp-config.php e .htaccess, limite di dimensione per i file caricati, disabilitazione della firma del server.

Percorso: WP SecurityFirewallAdditional Firewall. Abilita:

  • Deny Access to wp-config.php, la configurazione chiave non è disponibile via HTTP;
  • Deny Access to.htaccess, il file delle regole del server non è leggibile;
  • Disable Server Signature, Apache smette di riportare la versione negli header Server;
  • Limit File Upload Size, imposta 10 MB (sufficiente per le immagini, insufficiente per caricare un archivio con una shell).

Le regole vengono scritte direttamente in .htaccess. Dopo aver salvato, apri il sito in una finestra in incognito e verifica che tutto funzioni.

Regole htaccess aggiuntive per la protezione di WordPress

Passo 11. Blacklist firewall 6G

6G Firewall di Perishable Press è un insieme rigoroso di regole .htaccess che bloccano pattern malevoli negli URL e nelle stringhe di query: SQL injection, tentativi di file include (../../wp-config.php), vettori XSS e firme di scanner di vulnerabilità. Le regole sono statiche, non richiedono aggiornamenti, i pattern di attacco non cambiano da anni.

Percorso: WP SecurityFirewall6G Blacklist. Abilita Enable 6G Firewall Protection e salva. Se dopo l'attivazione un plugin legittimo smette di funzionare (raro, ma succede con plugin che hanno pattern URL non standard), aggiungilo alla whitelist: FirewallWhitelist.

Attivazione del Firewall 6G di Perishable Press in AIOS

Passo 12. Prevenire l'hotlinking delle immagini

L'hotlinking si verifica quando un altro sito incorpora una tua immagine tramite URL diretto (<img src="https://yoursite.com/uploads/photo.jpg">). Il tuo server serve diligentemente l'immagine, consumando traffico e risorse CPU, mentre il visitatore vede il contenuto sul sito di qualcun altro. Per i siti con screenshot e foto originali, questo impatto è percepibile.

Percorso: WP SecurityFirewallPrevent Hotlinks. Abilita Prevent Hotlinking. Aggiungi domini di eccezione (google.com, facebook.com, twitter.com) in modo che le anteprime dei social media e dei motori di ricerca continuino a funzionare. AIOS scrive le regole in .htaccess, vietando le richieste dirette di immagini con un header Referer proveniente da un altro dominio.

Protezione hotlinking immagini WordPress tramite AIOS

Passo 13. Rilevamento errori 404

Errori 404 di massa sono un segnale di scansione delle vulnerabilità. Un bot prova /wp-admin/, /admin/, /backup.zip, /phpmyadmin/ e centinaia di altri percorsi tipici, verificando la superficie d'attacco. AIOS traccia queste richieste, le collega agli IP e blocca la fonte.

Percorso: WP SecurityScanner404 Detection. Abilita Enable 404 Detection. Soglia: 20 errori in 15 minuti → ban temporaneo per 30 minuti; 50 errori in 15 minuti → ban permanente. La scheda Logged 404 Events mostrerà un elenco in tempo reale delle richieste sospette, utile per capire cosa viene effettivamente scansionato sul tuo sito.

Configurazione rilevamento errori 404 e blocco scanner in AIOS

Passo 14. Cambiare l'indirizzo della pagina di login

/wp-admin e /wp-login.php sono punti di ingresso standard, noti a ogni bot. Senza questo passaggio, la protezione anti brute-force (passo 2) funziona, ma gli attacchi arrivano comunque a migliaia, i bot bussano a una porta conosciuta. Rinominare la pagina di login rimuove il bersaglio stesso.

Percorso: WP SecurityBrute ForceRename Login Page. Inserisci uno slug personalizzato: almeno 4 caratteri, non admin, login o wp-*. Una buona opzione: manage- più 6 lettere casuali, ad esempio manage-xk7qpd. Dopo aver salvato, verifica immediatamente il nuovo URL e aggiungilo ai preferiti. Lo standard wp-login.php sarà disabilitato; se dimentichi lo slug, dovrai ripristinarlo via FTP (eliminando o rinominando il plugin).

Rinomina della pagina di login di WordPress con URL personalizzato in AIOS

Passo 15. Trappola honeypot per i bot

L'honeypot è un campo nascosto nel modulo di login. Un essere umano non lo vede (regola CSS display:none o posizionamento fuori schermo), ma un bot lo trova analizzando il markup HTML e lo compila. AIOS vede il campo nascosto compilato e blocca il tentativo in quanto non umano. Nessun captcha, l'utente non sa nemmeno del controllo.

Percorso: WP SecurityBrute ForceHoneypot. Abilita Enable Honeypot Protection. Il campo viene aggiunto automaticamente al modulo wp-login.php e lavora silenziosamente in background. Secondo Team Updraft, l'honeypot filtra la stragrande maggioranza dei bot automatizzati: non vogliono specificamente il tuo pannello di amministrazione, cercano solo il modulo standard e compilano tutti i campi in sequenza.

Attivazione della trappola honeypot per la protezione del modulo di login WordPress

Passo 16. Impedire l'incorporamento del sito in frame

Il clickjacking è un attacco in cui il tuo sito viene caricato in un <iframe> trasparente sopra il sito dell'aggressore. L'utente pensa di cliccare sull'interfaccia, ma in realtà interagisce con il modulo di un altro sito. L'header X-Frame-Options: SAMEORIGIN impedisce l'incorporamento.

Percorso: WP SecurityFirewallPrevent Framing. Abilita Prevent Your Site From Being Displayed in a Frame. AIOS aggiunge l'header HTTP X-Frame-Options: SAMEORIGIN a tutte le risposte del server. Verifica: curl -I https://yoursite.com, l'header dovrebbe essere nella risposta. Per i siti con modulo di login, carrello o pannello di amministrazione, questo passaggio è critico.

Protezione anti-clickjacking tramite intestazione X-Frame-Options in AIOS

Esportare la configurazione pronta per altri siti

Se gestisci più siti, l'import-export fa risparmiare ore. AIOS salva l'intera configurazione in un file di testo che si carica su un altro sito con un clic.

Percorso: WP SecuritySettingsImport/Export. Clicca su Export Settings, ottieni un file .txt con tutte le opzioni abilitate e i loro valori. Il file può essere modificato prima dell'importazione su un altro sito: sostituisci email per le notifiche di sicurezza e lo slug della pagina di login con quelli correnti per il sito di destinazione.

Importazione: WP SecuritySettingsImport/ExportImport Settings → seleziona il file. Tutti i 16 passaggi verranno applicati automaticamente in un paio di secondi, senza bisogno di ripassare ogni schermata.

⁉️🤔 Domande frequenti

AIOS serve se l'hosting promette "protezione totale"?

L'hosting protegge il server: livello sistema operativo, firewall di rete, filtraggio DDoS. AIOS protegge l'applicazione WordPress: attacchi brute-force al pannello di amministrazione, injection nei plugin, vulnerabilità dei temi non aggiornati. Il firewall del server non vede che un bot sta forzando le password su wp-login.php, vede richieste POST legittime. I livelli non si sovrappongono, servono entrambi. Un sito su hosting "protetto" senza plugin di sicurezza resta vulnerabile a livello CMS.

AIOS entra in conflitto con Cloudflare o un altro WAF?

No, lavorano a livelli diversi. Cloudflare è Layer 7 (proxy HTTP), filtra il traffico prima che arrivi al server. AIOS è a livello applicativo (PHP, .htaccess), dopo che la richiesta ha raggiunto WordPress. L'unica accortezza: usando Cloudflare, attiva Abilita rilevamento IP in AIOS, così il plugin vede l'IP reale del visitatore dall'header X-Forwarded-For, non l'IP del proxy.

Posso rimuovere AIOS dopo la configurazione? Le regole in.htaccess restano comunque.

No. Le regole .htaccess rimangono fisicamente nel file, ma senza monitoraggio e aggiornamenti diventano obsolete. Peggio: honeypot, rinomina della pagina di login, blocco dell'editor PHP e autenticazione a due fattori funzionano solo con il plugin attivo, è logica PHP, non regole statiche. Rimuovi il plugin, riapri il wp-login.php standard e disabiliti tutta la protezione del login.

Il sito si rompe se attivo tutti e 16 i passaggi in una volta?

Nella stragrande maggioranza dei siti, no. Ma la raccomandazione in produzione: attiva a blocchi di tre o quattro passaggi, verificando il funzionamento del sito dopo ogni blocco. Fai particolare attenzione al Firewall 6G (passaggio 11) e al cambio del prefisso delle tabelle (passaggio 4, il backup è obbligatorio). In anni di plugin su un milione di installazioni, non sono stati registrati conflitti critici con temi e plugin popolari.

Cosa offre la versione premium di AIOS rispetto a quella gratuita?

Tre aggiunte chiave: autenticazione a due fattori con policy flessibili (TFA obbligatoria per gli amministratori dopo N giorni, configurazione della frequenza di richiesta), scanner malware con avvisi da blacklist Google e blocco per nazione (divieto di accesso geo-IP). La versione gratuita basta per proteggere un blog o un sito aziendale. Un negozio online con dati riservati dei clienti dovrebbe passare alla versione Premium.

Cosa fare se ho dimenticato l'URL personalizzato della pagina di login?

Collegati al server via FTP/SFTP, vai in /wp-content/plugins/all-in-one-wp-security-and-firewall/ e rinomina temporaneamente la cartella del plugin. Questo disabilita AIOS e ripristina il wp-login.php standard. Accedi al pannello di amministrazione, rinomina di nuovo la cartella, attiva il plugin e imposta un nuovo slug. Per non dimenticarlo, salva subito l'URL nel tuo password manager quando lo crei.

Vale la pena configurare AIOS nel 2026 o ci sono alternative migliori?

A distanza di anni, AIOS resta il plugin di sicurezza gratuito per WordPress più equilibrato: un milione di installazioni, sviluppo attivo, aggiornamenti regolari per le nuove versioni del core. Alternative come Wordfence o Solid Security sono anch'esse valide, ma più pesanti.

I 16 passaggi sopra richiedono 15-20 minuti. Risultato: pagina di login nascosta, tre livelli di firewall, honeypot invisibile e configurazione pronta per essere clonata sul prossimo sito.

Set minimo senza il quale la protezione non può considerarsi completa:

  • Base: passaggi 1, 2, 9, 14, mascheramento versione, protezione brute-force, firewall di base e pagina di login nascosta;
  • Livello server: passaggi 7, 8, 10, 11, divieto editor PHP, blocco file di servizio, regole aggiuntive e 6G;
  • Protezione avanzata: passaggi 4, 6, 12, 15, prefisso tabelle, permessi di accesso, anti-hotlink, honeypot;
  • Perimetro: passaggi 3, 5, 13, 16, moderazione registrazioni, backup, rilevamento 404, protezione anti-clickjacking.

Configura un sito, esporta la configurazione e importala sugli altri in un minuto. Una volta al trimestre, controlla AIOSDashboard: il contatore di sicurezza mostrerà se qualche impostazione è "saltata" dopo un aggiornamento del core.