Quando si legge di un sito violato, il racconto è spesso lo stesso: nessuno aveva rubato password, nessuno era stato distratto. Semplicemente il sito usava un plugin con una falla nota, pubblicata settimane prima, e un programma automatico l’ha sfruttata. Fra le falle più antiche e ancora più diffuse c’è la SQL injection. Capire come funziona aiuta a capire perché gli aggiornamenti non sono un dettaglio.

Cos’è la SQL injection, senza troppa tecnica

Quasi tutti i siti dinamici (WordPress, PrestaShop, Magento, gestionali) conservano i contenuti in un database e lo interrogano con un linguaggio chiamato SQL. Quando cerchi un prodotto, il sito costruisce una domanda al database del tipo “dammi i prodotti il cui nome contiene la parola che l’utente ha scritto”.

Se il codice è scritto con cura, ciò che scrivi tu viene trattato sempre e solo come un dato da cercare. Se invece il codice è scritto male, chi conosce il trucco può inserire nel campo di ricerca, o in un parametro dell’indirizzo, dei pezzi di comando SQL. Il database li esegue come se fossero parte della domanda originale. A quel punto l’attaccante può leggere tabelle che non dovrebbe vedere (utenti, email, password cifrate, ordini), modificare dati o creare un nuovo amministratore.

Non serve che il tuo sito sia “importante” per essere colpito: gli attacchi sono automatici. Programmi che girano giorno e notte provano le falle conosciute su migliaia di siti, senza guardare di chi sono.

Da dove arrivano le falle

Nella grande maggioranza dei casi la falla non sta nel CMS principale, che è molto controllato, ma in:

  • plugin e moduli, soprattutto quelli poco diffusi, abbandonati dallo sviluppatore o scaricati da fonti non ufficiali;
  • temi con funzioni aggiuntive (moduli, filtri, ricerche avanzate);
  • codice personalizzato scritto in fretta, magari anni fa;
  • versioni vecchie di software che nel frattempo sono state corrette.

Quando una falla viene scoperta, lo sviluppatore pubblica una versione corretta e la vulnerabilità viene resa pubblica, spesso con un identificativo CVE. Da quel momento inizia una corsa: chi aggiorna è protetto, chi non aggiorna diventa un bersaglio facile, perché la falla è ormai documentata.

Altre falle che viaggiano con la SQL injection

  • XSS (cross-site scripting): l’attaccante riesce a far eseguire del codice JavaScript nelle pagine del sito, ad esempio per rubare la sessione di un amministratore.
  • Caricamento di file arbitrari: un modulo di upload mal controllato permette di caricare uno script PHP e prendere il controllo del sito.
  • Accesso senza autorizzazione: funzioni amministrative raggiungibili senza essere amministratori.

Il rimedio, per te che gestisci il sito, è quasi sempre lo stesso: aggiornare e ridurre il codice inutile.

Cosa puoi fare tu

1. Aggiorna, con metodo

Aggiorna CMS, plugin, moduli e temi appena esce una versione di sicurezza. Per farlo senza rischi segui la guida aggiornare WordPress, temi e plugin senza rischi. Se hai installato il CMS con Installatron, puoi attivare gli aggiornamenti automatici con backup prima di ogni aggiornamento.

2. Elimina ciò che non usi

Un plugin disattivato ma presente sul server può essere comunque sfruttabile, perché i suoi file sono raggiungibili. Se non lo usi, cancellalo. Lo stesso vale per temi di prova, vecchie copie del sito in sottocartelle (/vecchio, /test, /backup) e installazioni dimenticate.

3. Scegli i componenti con criterio

Prima di installare un plugin guarda quando è stato aggiornato l’ultima volta, quante installazioni attive ha e se lo sviluppatore risponde alle segnalazioni. Evita le versioni “nulled” (piratate) dei plugin a pagamento: sono una delle vie più comuni per far entrare malware.

4. Limita i privilegi

Ogni persona con il suo account e con il ruolo minimo necessario; credenziali robuste e verifica in due passaggi (vedi password sicure e 2FA).

5. Tieni d’occhio la versione di PHP

Anche PHP riceve aggiornamenti di sicurezza solo per un certo periodo. Restare su una versione molto vecchia per compatibilità con un plugin datato è un rischio doppio. Puoi cambiare versione dal pannello (guida: cambiare versione PHP).

Cosa facciamo noi

La sicurezza di un sito è un lavoro a più livelli, e alcuni di questi li curiamo noi sui nostri server:

  • Gestione vulnerabilità individua nei siti le falle note, così sai cosa aggiornare;
  • cPGuard analizza file e database alla ricerca di malware, mette in quarantena ciò che trova e include un firewall applicativo che filtra le richieste sospette;
  • Security Intelligence blocca bot e attacchi;
  • JetBackup conserva almeno due copie al giorno per 30 giorni, così in caso di problemi puoi tornare a una versione pulita.

Un firewall applicativo può fermare molti tentativi di sfruttare una falla, ma non sostituisce l’aggiornamento: il modo più sicuro di chiudere una porta è chiuderla, non sorvegliarla.

Se temi di essere stato colpito

Segnali tipici: amministratori che non hai creato, reindirizzamenti verso siti estranei, pagine in lingue strane indicizzate su Google, avvisi del browser. Trovi la procedura nella guida sui segnali di malware e cPGuard. In ogni caso apri subito un ticket dall’area clienti: prima si interviene, meno danni si fanno.

Altri articoli su Backup, sicurezza e prestazioni

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS