Proteggere un sito WordPress non significa installare un plugin e dimenticarsene. Un'installazione comprende il CMS, estensioni e temi, PHP, il database, l'hosting, gli account di amministrazione e spesso un reverse proxy. Un errore in uno solo di questi livelli può vanificare la protezione degli altri.

1. Conosci e aggiorna ciò che esponi

Mantieni aggiornati WordPress core, PHP, sistema operativo, plugin e temi, usando versioni supportate. Elimina le estensioni non più necessarie: disattivare un plugin non elimina il codice dal server. Controlla chi lo mantiene e la frequenza delle correzioni di sicurezza; diffida dei componenti premium distribuiti gratuitamente da siti sconosciuti.

Per siti critici verifica le versioni in staging prima di distribuirle. Registra i cambiamenti e controlla login, checkout, form, immagini e integrazioni dopo ogni aggiornamento.

2. Proteggi account e credenziali

Ogni collaboratore deve avere un account personale e il ruolo minimo indispensabile. Un redattore non ha bisogno dei permessi di amministratore; un vecchio account inattivo andrebbe disabilitato o eliminato dopo averne gestito i contenuti.

Usa password lunghe e uniche conservate in un password manager. Per gli amministratori abilita autenticazione a più fattori, preferibilmente resistente al phishing quando disponibile. Proteggi anche l'account hosting, il DNS, il registrar e la piattaforma di deployment.

Un attacco a forza bruta può essere mitigato con limiti sui tentativi, logging e controlli di accesso, ma rinominare la pagina di login non costituisce una difesa sufficiente.

3. HTTPS, permessi e configurazione PHP

Il traffico deve essere cifrato in HTTPS. Verifica redirect, cookie Secure e corretta terminazione TLS se utilizzi Cloudflare o un altro proxy.

Il server web non dovrebbe poter scrivere indiscriminatamente in tutto il filesystem. Separa file applicativi e directory che richiedono upload, proteggi backup e log e impedisci che segreti come wp-config.php siano accessibili via web.

Per limitare il rischio legato all'editor dei file nel pannello puoi impostare in wp-config.php:

define('DISALLOW_FILE_EDIT', true);

La direttiva disabilita l'editor di temi e plugin dal pannello: non è una protezione completa dall'esecuzione di codice e non neutralizza le vulnerabilità nei componenti.

4. Riduci la superficie d'attacco senza rompere il sito

Valuta plugin, shortcode, endpoint REST, XML-RPC, integrazioni e funzionalità di upload. Se una funzione è inutile per il tuo progetto puoi limitarla; evita però blocchi generici che interrompono plugin o applicazioni legittime.

Un firewall applicativo (WAF) può filtrare richieste malevole comuni, ma va configurato e monitorato. Un controllo erroneo può bloccare utenti reali o persino crawler dei motori di ricerca. Conserva gli eventi di blocco e distingui fra indirizzo IP del client e del proxy.

5. Backup e recupero misurabile

Conserva copie di database, file caricati, configurazioni e codice in una destinazione protetta, preferibilmente esterna al server di produzione e cifrata. Il backup deve avere una retention definita e non deve essere pubblicamente accessibile.

Programma prove di ripristino in un ambiente isolato. Se un backup non è mai stato ripristinato, non sai davvero se contiene tutti i dati né in quanto tempo riuscirai a tornare online.

6. Monitoraggio e gestione degli incidenti

Raccogli log applicativi, PHP e reverse proxy, accessi amministrativi, modifiche a plugin e file. Valuta alert in relazione tra loro: mille richieste a wp-login.php non provano da sole un'intrusione, mentre un nuovo amministratore non autorizzato accompagnato da modifiche PHP inattese richiede indagini immediate.

Se sospetti una compromissione, preserva le evidenze, limita l'accesso e controlla la presenza di backdoor, processi persistenti, task pianificati e credenziali esposte. Dopo aver corretto la causa, ruota i segreti e verifica il ripristino. Cancellare soltanto un file sospetto potrebbe non bastare.

Checklist periodica

  • Versioni supportate di WordPress, PHP, plugin e temi.
  • Account nominativi, MFA e privilegi minimi.
  • Backup cifrati, esterni e testati.
  • HTTPS e permessi di file e directory verificati.
  • Plugin inutilizzati eliminati e integrazioni documentate.
  • WAF e logging configurati senza blocchi indiscriminati.
  • Procedura di risposta e ripristino effettivamente provata.

Fonte tecnica primaria: WordPress Developer Handbook — Hardening WordPress.

La sicurezza è una riduzione del rischio, non un risultato assoluto garantito da un singolo plugin. In caso di problemi su sistemi produttivi, valuta l'intervento di un professionista qualificato.