Torna al Blog

18 aprile 2025

Come prevenire gli attacchi SQL Injection su WordPress

Le pratiche essenziali per ridurre il rischio di SQL Injection su WordPress: aggiornamenti, query sicure, plugin affidabili e hardening.

Come prevenire gli attacchi SQL Injection su WordPress

Cos'e una SQL Injection

Una SQL Injection e un attacco in cui un input non controllato viene usato per alterare una query verso il database. Su WordPress il rischio riguarda soprattutto form, plugin vulnerabili, temi mal sviluppati, endpoint personalizzati e codice che costruisce query concatenando stringhe.

L'obiettivo dell'attaccante puo essere leggere dati, modificare contenuti, creare utenti, estrarre informazioni sensibili o compromettere l'intero sito.

Perche WordPress e un bersaglio frequente

WordPress e molto diffuso e questo lo rende interessante per attacchi automatizzati. Il core, se aggiornato, e robusto; il problema nasce spesso dall'ecosistema: plugin abbandonati, temi non mantenuti, codice custom scritto senza attenzione alla sicurezza e installazioni prive di manutenzione.

La prevenzione non dipende da un singolo strumento, ma da una combinazione di pratiche tecniche e operative.

Best practice per prevenire SQL Injection

Aggiorna core, plugin e temi

Molti attacchi sfruttano vulnerabilita gia note. Tenere aggiornati WordPress, plugin e temi riduce la superficie di attacco. I plugin non mantenuti andrebbero rimossi o sostituiti.

Usa query preparate

Nel codice custom non bisogna mai concatenare input utente dentro query SQL. WordPress mette a disposizione $wpdb->prepare(), che permette di separare struttura della query e valori.

$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}custom_table WHERE email = %s",
        $email
    )
);

Valida e sanitizza gli input

Ogni dato ricevuto da form, URL, cookie o API deve essere validato in base al formato atteso e sanitizzato prima dell'uso. Email, numeri, slug, ID e testi liberi richiedono controlli diversi.

Limita i privilegi del database

L'utente database usato dal sito dovrebbe avere solo i permessi necessari. Privilegi eccessivi aumentano il danno potenziale in caso di compromissione.

Scegli plugin affidabili

Prima di installare un plugin verifica aggiornamenti recenti, numero di installazioni, reputazione, changelog e compatibilita. Un plugin vulnerabile puo rendere inutile il resto dell'hardening.

Aggiungi protezioni applicative

Un Web Application Firewall, regole di rate limiting, monitoraggio login e blocco dei pattern sospetti aiutano a ridurre gli attacchi automatici.

Sicurezza e SEO

Un sito compromesso puo perdere posizionamenti, mostrare contenuti spam, essere segnalato dai browser o finire in blacklist. La sicurezza tecnica e quindi anche un tema SEO: proteggere WordPress significa proteggere traffico organico, reputazione e conversioni.

Checklist rapida

  • Aggiornamenti automatici o manutenzione pianificata.
  • Backup verificati e ripristinabili.
  • Plugin inutili rimossi.
  • Query custom con $wpdb->prepare().
  • Input validati e sanitizzati.
  • WAF o protezione equivalente.
  • Monitoraggio log e alert.
  • Account amministrativi protetti da password robuste e MFA.

FAQ

Un plugin di sicurezza basta?

No. Aiuta, ma non sostituisce aggiornamenti, codice sicuro e manutenzione.

WordPress e sicuro?

WordPress puo essere sicuro se configurato e mantenuto correttamente. Il rischio aumenta quando installazione, plugin e codice custom vengono lasciati senza controllo.

Ogni form e pericoloso?

Ogni input e una potenziale superficie di attacco. Il punto non e evitare i form, ma gestirli con validazione, sanitizzazione e query sicure.

Conclusione

La prevenzione delle SQL Injection su WordPress richiede disciplina: aggiornare, ridurre i componenti inutili, scrivere query sicure e monitorare. Non e un intervento una tantum, ma una pratica continuativa di manutenzione e qualita.