Sicurezza WordPress: 17 snippet .htaccess per migliorare la sicurezza

Sicurezza WordPress: 17 snippet .htaccess per migliorare la sicurezza

Lascia un commento / Cyber Security / Di andrea barbieri / Gennaio 2, 2026

Aggiornato recentemente a Marzo 31st, 2026 alle 11:46 am

La sicurezza WordPress è uno dei fattori più trascurati dai blogger alle prime armi. In un’installazione di WordPress non controllata, ci sono molte potenziali vulnerabilità che vengono lasciate incustodite. La maggior parte dei tutorial sull’installazione di WordPress spiegano un modo semplice e veloce per implementare WordPress in pochi minuti. Ma tralasciano alcuni importanti fattori di sicurezza. Ad esempio, l’esplorazione della directory e l’utilizzo del nome utente “admin” sono considerati gravi lacune di sicurezza. Oggi daremo un’occhiata a 10 snippet di codice .htaccess che vi aiuteranno a migliorare la sicurezza del vostro blog WordPress. Prima di iniziare, diamo una rapida occhiata a cosa è il file htaccess.

Un file htaccess è un file di configurazione opzionale che il server web Apache deve interpretare per ogni directory. In questo file è possibile memorizzare diverse impostazioni, come ad esempio: proteggere con password una directory, bloccare gli IP, bloccare un file o una cartella dall’accesso pubblico, ecc. Tradizionalmente, il file .htaccess è presente nella directory di installazione di WordPress. Esso memorizza la struttura dei permalink per impostazione predefinita.

SUGGERIMENTO: prima di iniziare l’esercitazione, assicuratevi di eseguire un backup del file .htaccess corrente (se presente) in un servizio di cloud storage come Dropbox. Questo serve per tornare all’ultimo file .htaccess funzionante, nel caso in cui un determinato frammento di codice danneggi il vostro sito. Iniziamo. In questa inforgrafica si riassumono alcuni punti importanti:

sicurezza wordpress

Condividi questa immagine sul tuo sito

Adesso andiamo a vedere cosa possiamo fare con il file .htaccess per migliorarel a sicurezza del tuo sito WordPress.

1. Bloccare i bot cattivi

Uno dei migliori utilizzi del file .htaccess è la sua capacità di impedire a più indirizzi IP di accedere al sito. Ciò è utile per bloccare spammer noti e altre origini di accesso sospette o dannose. Il codice è:

# Block one or more IP address.
# Replace IP_ADDRESS_* with the IP you want to block

<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

Dove IP_ADDRESS_1 è il primo IP a cui si vuole impedire l’accesso al sito. È possibile aggiungere tutti gli IP desiderati. Indipendentemente dagli agenti utente (browser) utilizzati da questi indirizzi IP, essi non saranno in grado di accedere a un singolo file del vostro server. Il server web negherà automaticamente ogni accesso.

2. Bloccare i Bot cattivi seconda versione

Puoi usari anche lo script 7G Firewall da inserire sempre nel .htaccess all’inizio del file.

3. Disattivare l’esplorazione delle directory

immagine

Si tratta di una delle falle di sicurezza più compromesse in un sito WordPress. Per impostazione predefinita, il webserver Apache consente la navigazione nelle directory. Ciò significa che tutti i file e le cartelle all’interno della directory principale (a volte chiamata home directory) del server web sono accessibili a un visitatore. Non si vuole che questo avvenga perché non si vuole che le persone sfoglino i file multimediali caricati o i file dei temi o dei plugin.

Se scelgo a caso 10 siti web personali o aziendali con WordPress, 6-8 di essi non hanno la navigazione nella directory disabilitata. Questo permette a chiunque di curiosare facilmente nella cartella wp-content/uploads o in qualsiasi altra cartella che non abbia il file index.php predefinito. In effetti, la schermata che vedete proviene da un sito di un mio cliente, prima che io consigliassi la soluzione. Snippet di codice per disabilitare la navigazione nelle cartelle:

# Disable directory browsing
Options All -Indexes

4. Consentire solo i file selezionati da wp-content

Come sapete, la cartella wp-content contiene la maggior parte dei temi, dei plugin e di tutti i media caricati. Non si vuole certo che le persone vi accedano senza restrizioni. Oltre a disabilitare l’esplorazione delle cartelle, è possibile negare l’accesso a tutti i tipi di file, tranne alcuni. In sostanza, è possibile sbloccare selettivamente file come JPG, PDF, DOCX, CSS, JS, ecc. e negare il resto. Per farlo, incollate questo frammento di codice nel vostro file .htaccess:

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

È necessario creare un nuovo file .htaccess con il codice e incollarlo nella cartella wp-content. Non collocatelo nella cartella di installazione di base, altrimenti non funzionerà. È inoltre possibile aggiungere qualsiasi tipo di file all’elenco aggiungendo un “|” dopo “rar”. L’elenco precedente contiene i file necessari: XML, CSS e JavaScript, i formati di immagini e documenti più comuni e infine i formati di archivio più utilizzati.

5. Limitare l’accesso a wp-includes

La cartella wp-includes contiene solo i file strettamente necessari per eseguire la versione principale di WordPress, senza plugin o temi. Ricordate che il tema predefinito risiede ancora nella cartella wp-content/theme. Pertanto, nessun visitatore (compreso l’utente) dovrebbe avere accesso al contenuto della cartella wp-include. È possibile disabilitare l’accesso utilizzando il seguente frammento di codice:

# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

6. Consentire l’accesso a wp-admin solo agli indirizzi IP selezionati

La cartella wp-admin contiene i file necessari per l’esecuzione della dashboard di WordPress. Nella maggior parte dei casi, i visitatori non hanno bisogno di accedere alla dashboard di WordPress, a meno che non vogliano registrare un account. Una buona misura di sicurezza consiste nell’abilitare solo alcuni indirizzi IP selezionati ad accedere alla cartella wp-admin. È possibile consentire gli IP delle persone che hanno bisogno di accedere alla dashboard di WordPress: redattori, collaboratori e altri amministratori. Questo frammento di codice consente solo a determinati IP di accedere alla cartella wp-admin e nega l’accesso al resto del mondo.

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

Assicuratevi di creare un nuovo file .htaccess e di incollarlo nella cartella wp-admin e non nella directory di installazione di base. Se è quest’ultima, nessuno, a parte voi, sarà in grado di navigare nel vostro sito, nemmeno i motori di ricerca! E questo non è certo il caso. Un paio di svantaggi di questa misura sono i seguenti:

  • Se il sito consente o promuove la registrazione di nuovi utenti, sarebbe quasi impossibile tenere traccia del numero di utenti. Ad esempio, su WPExplorer, se si desidera scaricare i nostri fantastici temi gratuiti, è necessario registrarsi.
  • Le persone con indirizzi IP dinamici (per lo più utenti di ADSL a banda larga che utilizzano i protocolli PPP o PPPoE) cambiano il proprio IP ogni volta che effettuano il logout e il login al proprio ISP. Sarebbe certamente poco pratico tenere traccia di tutti questi IP e aggiungerli al file htaccess.
  • Banda larga mobile: Che siate su 3G o 4G, il vostro indirizzo IP dipende dall’attuale ripetitore a cui siete connessi. Se siete in viaggio, il vostro IP cambierà costantemente ogni paio di chilometri che vi allontanate dall’origine. Anche in questo caso, tenere traccia del file htaccess è quasi impossibile.
  • Hotspot Wi-Fi pubblici: Utilizzare le credenziali quando si è connessi a Internet tramite un hotspot Wi-Fi pubblico è un grave errore, poiché un bambino con un piccolo software può estrarre ogni carattere digitato. Inoltre, ogni hotspot Wi-Fi avrà un indirizzo IP unico.

Fortunatamente, tutti questi svantaggi (tranne il primo) possono essere corretti utilizzando una VPN. Se impostate la vostra VPN in modo che si connetta utilizzando un solo indirizzo IP, potete semplicemente aggiungerlo al vostro file htaccess e tutti i vostri problemi saranno risolti.

7. Proteggere wp-config.php e .htaccess da tutti

Il file wp-config.php contiene le credenziali di accesso più sensibili del vostro sito WordPress. Contiene il nome del database, le credenziali di accesso e vari altri dati critici, oltre ad altre impostazioni. In nessun caso volete che altre persone guardino in questo file. E naturalmente, volete disabilitare l’accesso pubblico alla fonte di tutta questa sicurezza: il file .htaccess stesso. È possibile disabilitare l’accesso a wp-config.php con il seguente codice:

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>

Per negare l’accesso a tutti i file htaccess (ricordate che alcuni possono risiedere in wp-admin e in altre cartelle), utilizzate questo frammento di codice:

# Deny access to all .htaccess files
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

8. Rifiutare l’hotlinking di immagini

Uno degli hack più interessanti del file .htaccess, che fa scappare gli scrapers di contenuti con la coda tra le gambe. Quando qualcuno utilizza l’immagine del vostro sito, consuma la vostra larghezza di banda e il più delle volte non vi viene nemmeno accreditata. Questo snippet di codice elimina il problema e invia l’immagine quando viene rilevato un hotlink.

# Prevent image hotlinking script. Replace last URL with any image link you want.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

9. Abilitare la cache del browser

Conosciuto anche come caching lato client, questo hack .htaccess abilita le opzioni di caching del browser consigliate per il tuo sito WordPress. Puoi utilizzarlo anche in altri progetti, come siti HTML, ecc.

# Setup browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

10. Reindirizzamento a una pagina di manutenzione

Quando si effettua una migrazione di webhost o si esegue qualche operazione di manutenzione, è sempre consigliabile creare un file HTML statico “down for maintenance” per informare i visitatori che il sito web è in fase di aggiornamento o di manutenzione. È sufficiente creare un file maintenance.html (o qualsiasi altro nome di file) e caricarlo nella directory di installazione di WordPress. Incollate il seguente snippet nel file .htaccess. Una volta terminata l’operazione, assicuratevi di cancellare o commentare queste righe per tornare al funzionamento generale. È possibile commentare aggiungendo un “#” all’inizio di ogni riga.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L] 

11. Pagine di errore personalizzate

È inoltre possibile utilizzare il file .htaccess per configurare pagine di errore personalizzate di facile utilizzo per errori quali 403, 404 e 500. Una volta preparata la pagina di errore, ad esempio error.html, caricatela nella directory di installazione di WordPress. Aggiungete quindi il seguente frammento di codice al vostro file .htaccess per abilitare la pagina di errore personalizzata:

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

12. Cambiare il prefisso della tabella del database

Dove: wp-config.php

Per impostazione predefinita, WordPress utilizza il prefisso wp_ per le tabelle del database. Per rendere il vostro sito più sicuro, potete utilizzare un prefisso di tabella più complicato, modificando il valore della variabile $table_prefix nel file wp-config. Si tenga presente che nel prefisso della tabella si possono usare solo numeri, lettere e trattini bassi. Qualsiasi altro carattere, ad esempio i caratteri speciali, risulterà in un prefisso di tabella non valido.

immagine 1

13. Forzare il login sicuro

Dove: wp-config.php

Costringere gli utenti ad accedere all’area di amministrazione tramite il protocollo sicuro SSL può aumentare notevolmente la sicurezza di WordPress. Tuttavia, potete farlo solo se avete un certificato SSL installato sul vostro sito. Potete acquistare un certificato SSL presso il vostro provider di hosting, ma in questi giorni molti piani di hosting vengono forniti con il certificato gratuito Let’s Encrypt.

Con il certificato SSL, è possibile utilizzare il protocollo sicuro HTTPS per l’area di amministrazione o per l’intero sito. È possibile forzare gli utenti ad accedere tramite il link sicuro https:// aggiungendo la seguente riga all’inizio del file wp-config:

immagine 2

14. Disabilitare le modifiche ai plugin e ai temi

È possibile disabilitare gli editor dei plugin e dei temi per gli amministratori aggiungendo la seguente riga al file wp-config

define( 'DISALLOW_FILE_EDIT', true );

Se non vuoi solo disabilitare gli editor di plugin e temi, ma volete anche impedire agli amministratori di aggiornare plugin e temi dall’amministrazione di WordPress, utilizzate la seguente regola:

define( 'DISALLOW_FILE_MODS', true );

Non utilizzate entrambe le costanti contemporaneamente. Se volete aggiornare plugin e temi come amministratori di WordPress, usate DISALLOW_FILE_EDIT. Se non vi interessa eseguire gli aggiornamenti in background (via SFTP), usate invece DISALLOW_FILE_MODS.

immagine 3

15.Disallow Unfiltered HTML

Dove: wp-config.php

WordPress consente agli amministratori e agli editor di pubblicare markup HTML e codice JavaScript (all’interno di un tag <script> da pagine, post, widget, commenti. Tuttavia, questo puo’ essere pericoloso se il loro account viene compromesso. E’ possibile filtrare l’HTML pubblicato aggiungendo la seguente regola al file wp-config.

define( 'DISALLOW_UNFILTERED_HTML', true );

In questo modo l’HTML e il JavaScript inviati non verranno eseguiti. Verranno invece visualizzati sul sito web come una stringa di testo semplice.

immagine 4

16. Negare l’accesso a tutti i file .htaccess

Dove: .htaccess

È anche possibile negare l’accesso non autorizzato a tutti i file .htaccess dell’installazione di WordPress. I file .htaccess contengono la configurazione del server Apache, ma sono pubblicamente disponibili nel browser.

Se digitate http://yoursite.com/.htaccess nella barra degli URL del vostro browser, potete verificare se il vostro file .htaccess principale è accessibile a chiunque su Internet. Utilizzate la seguente regola .htaccess per proteggere i vostri file .htaccess:

<Files ~ "^.*\.([Hh][Tt][Aa])">
Order Allow,Deny
Deny from all
Satisfy all
</Files>
immagine 5

17. Disabilitare l’accesso a XML-RPC

Dove: .htaccess

WordPress utilizza il protocollo XML-RPC, che può essere usato sia per la pubblicazione remota che per le applicazioni di terze parti per connettersi al vostro sito. Tuttavia, si tratta anche di una vulnerabilità di sicurezza, in quanto gli aggressori possono sfruttare questa funzione. Se non utilizzate applicazioni di terze parti, considerate la possibilità di disabilitare XML-RPC aggiungendo il seguente snippet al vostro file .htaccess:

<FilesMatch "^(xmlrpc\.php)">
Order Deny,Allow
Deny from all
</FilesMatch>

Si noti che anche alcuni popolari plugin di WordPress, come Jetpack, utilizzano l’API XML-RPC. Se vui usare Jetpack, non disabilitate l’accesso a XML-RPC.

immagine 6

Sicurezza WordPress: conclusione

Oggi abbiamo imparato alcuni degli hack htaccess più interessanti per rafforzare il la sicurezza WordPress del tuo sito. Ti suggerisco di provare ogni modulo uno per uno e di fare un backup del file .htaccess prima e dopo aver testato ogni modulo. Questo perché il file .htaccess è molto critico. Un carattere ‘#’ mancante o un ” mal posizionato potrebbero distruggere l’integrità del sito. Se accedi spesso alla tua dashboard di WordPress in viaggio, è consigliabile non abilitare IP selettivi alla cartella wp-admin.

A voi la parola: cosa ne pensate di questo post? Pensate che valga la pena di modificare il file htaccess? Conoscete un consiglio migliore per la sicurezza? Sono lieto di ascoltarvi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Il periodo di verifica reCAPTCHA è scaduto. Ricaricare la pagina.