Come mettere in sicurezza WordPress per la sicurezza e la conformità GDPR
Una guida pratica per mettere in sicurezza il tuo sito WordPress e renderlo conforme al GDPR. Copre hardening del server, sicurezza dei plugin, crittografia del database, consenso ai cookie e requisiti di hosting europeo.
WordPress alimenta oltre il 40% del web, il che lo rende il bersaglio numero uno per gli attacchi automatizzati. Se il tuo sito WordPress gestisce dati di utenti europei — moduli di contatto, ordini e-commerce, iscrizioni alla newsletter o analytics — hai anche obblighi GDPR che la maggior parte delle installazioni WordPress predefinite non soddisfa.
Questa guida copre entrambi gli aspetti: rendere sicura la tua installazione WordPress contro le minacce reali, e assicurarsi che soddisfi i requisiti della normativa europea sulla protezione dei dati.
I due problemi di WordPress predefinito
Appena installato, WordPress ha due lacune critiche:
Le impostazioni di sicurezza predefinite sono deboli. Gli aggiornamenti automatici coprono solo le release minori, la pagina di login è accessibile pubblicamente a un URL noto, i permessi sui file sono spesso troppo permissivi e la maggior parte degli stack di hosting non include header di base come Content-Security-Policy.
La conformità GDPR è assente. Il core di WordPress imposta cookie, raccoglie indirizzi IP nei commenti e non fornisce alcun meccanismo di consenso. I plugin peggiorano la situazione — ogni snippet di analytics, form builder o widget social può introdurre trasferimenti di dati a terze parti di cui sei legalmente responsabile.
Risolvere entrambi i problemi richiede interventi a livello di server, di applicazione e di plugin.
Hardening a livello di server
Prima di toccare WordPress stesso, metti in sicurezza il server su cui gira.
Usa un server ospitato in Europa
Se il tuo pubblico è nell'UE, anche il tuo server dovrebbe esserlo. Affidarsi a un provider europeo in un data centre nell'UE significa che i dati personali non lasciano mai la giurisdizione europea. Questo è il modo più semplice per evitare i complessi meccanismi di trasferimento internazionale dei dati.
Imponi HTTPS ovunque
Installa un certificato SSL (Let's Encrypt è gratuito) e forza tutto il traffico tramite HTTPS:
# .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Aggiungi header di sicurezza
Aggiungi questi alla tua configurazione Nginx o Apache:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';" always;
Limita i permessi sui file
I file di WordPress dovrebbero essere di proprietà dell'utente del web server ma non scrivibili da tutti:
find /var/www/wordpress -type d -exec chmod 755 {} \;
find /var/www/wordpress -type f -exec chmod 644 {} \;
chmod 600 /var/www/wordpress/wp-config.php
Il file wp-config.php contiene le credenziali del database — non dovrebbe mai essere leggibile da altri utenti del sistema.
Hardening dell'applicazione WordPress
Sposta wp-config.php sopra la web root
WordPress cerca automaticamente wp-config.php nella directory superiore. Spostarlo lì impedisce l'accesso diretto via web:
mv /var/www/wordpress/wp-config.php /var/www/wp-config.php
Disabilita la modifica dei file dalla dashboard
Impedisci agli attaccanti che compromettono un account admin di modificare i file dei temi/plugin:
// wp-config.php
define('DISALLOW_FILE_EDIT', true);
Cambia l'URL di login
I percorsi predefiniti /wp-admin e /wp-login.php sono presi di mira da ogni bot su internet. Usa un plugin come WPS Hide Login per cambiare l'URL con qualcosa di unico.
Limita i tentativi di login
Installa un plugin come Limit Login Attempts Reloaded oppure configura fail2ban a livello di server per bloccare gli attacchi brute-force:
# /etc/fail2ban/jail.local
[wordpress]
enabled = true
filter = wordpress-auth
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Mantieni tutto aggiornato
Abilita gli aggiornamenti automatici per le release minori, i plugin e i temi:
// wp-config.php
define('WP_AUTO_UPDATE_CORE', 'minor');
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Per le release maggiori, testa prima in un ambiente di staging.
Usa prefissi di tabella robusti
Cambia il prefisso di tabella predefinito wp_ durante l'installazione. Se il sito è già online, è più difficile da cambiare ma riduce l'efficacia degli attacchi SQL injection che presumono nomi di tabella predefiniti.
Checklist di conformità GDPR
La sicurezza tecnica è solo metà del quadro. Ecco cosa serve per la conformità GDPR:
1. Consenso ai cookie
Devi ottenere il consenso esplicito prima di impostare cookie non essenziali. Questo include analytics (Google Analytics, Matomo), pixel di marketing (Facebook, LinkedIn) e contenuti incorporati (YouTube, Google Maps).
Usa una piattaforma di gestione del consenso (CMP) che:
- Blocchi gli script fino a quando non viene dato il consenso (non solo un banner che non fa nulla)
- Consenta il consenso granulare per categoria
- Registri la prova del consenso
- Fornisca un modo semplice per revocare il consenso
2. Informativa sulla privacy
La tua informativa sulla privacy deve indicare:
- Quali dati personali raccogli e perché
- La base giuridica per ogni attività di trattamento
- Chi riceve i dati (hosting provider, servizio email, analytics)
- Per quanto tempo conservi i dati
- Come gli utenti possono esercitare i propri diritti (accesso, cancellazione, portabilità)
3. Moduli di contatto e commenti
Ogni modulo che raccoglie dati personali necessita di:
- Un link alla tua informativa sulla privacy
- Una casella di consenso (per le comunicazioni di marketing)
- Minimizzazione dei dati — raccogli solo ciò che ti serve davvero
Per i commenti di WordPress, valuta di disabilitarli o di utilizzare una soluzione self-hosted invece di Disqus (che trasferisce dati negli USA).
4. Analytics senza trasferimenti a terzi
Google Analytics trasferisce dati a server statunitensi, il che crea complicazioni GDPR dopo la sentenza Schrems II. Alternative:
- Matomo (self-hosted) — analytics completo, i dati restano sul tuo server
- Plausible (ospitato nell'UE) — leggero, rispettoso della privacy
- Fathom — analytics semplice con opzione di residenza dati nell'UE
5. Conformità email e newsletter
Se usi Mailchimp o servizi simili con sede negli USA, stai trasferendo i dati degli iscritti fuori dall'UE. Valuta alternative europee come Brevo (ex Sendinblue) o soluzioni self-hosted come Listmonk.
6. Diritto alla cancellazione
WordPress 4.9.6+ include uno strumento integrato di esportazione e cancellazione dei dati sotto Strumenti > Esporta/Cancella dati personali. Assicurati che funzioni e che copra tutti i plugin che archiviano dati degli utenti.
Audit di sicurezza dei plugin
I plugin sono la superficie di attacco più grande in WordPress. Segui queste regole:
- Rimuovi i plugin inutilizzati — anche i plugin disattivati possono essere sfruttati
- Controlla la reputazione dei plugin — verifica la data dell'ultimo aggiornamento, le installazioni attive e l'attività nel forum di supporto
- Audita i flussi di dati dei plugin — il plugin invia dati a server esterni? Controlla l'informativa sulla privacy del plugin
- Minimizza i plugin — ogni plugin è una potenziale vulnerabilità. Se puoi ottenere lo stesso risultato con poche righe in
functions.php, fai quello
Backup del database e disaster recovery
Esegui il backup del database ogni giorno e archivia i backup in una posizione UE separata:
mysqldump -u wp_user -p wordpress_db | gzip > \
/backups/wp_$(date +%F).sql.gz
Testa regolarmente il processo di ripristino. Un backup che non hai mai testato non è un backup.
Quando la sicurezza di WordPress diventa un lavoro a tempo pieno
Mantenere WordPress sicuro e conforme al GDPR non è un compito una tantum. Richiede monitoraggio continuo, patch, audit dei plugin, rinnovo dei certificati e verifica dei backup. Per molte aziende, questo carico operativo è insostenibile — specialmente quando un singolo aggiornamento mancato può portare a una violazione o a una non conformità.
Alplink offre hosting WordPress completamente gestito su infrastruttura europea sovrana. Ci occupiamo di hardening della sicurezza, aggiornamenti automatici, backup giornalieri, configurazioni server conformi al GDPR e monitoraggio 24/7 — il tutto basato su NixOS per deployment riproducibili e verificabili. I tuoi dati restano in Europa, il tuo sito resta sicuro e tu resti concentrato sulla tua azienda. Scopri di più su alplink.eu.