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.

By Alplink Tech Team · 2026-03-20 · 6 min read

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:

  1. 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.

  2. 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.