Tra le sigle che compaiono negli avvisi di sicurezza di WordPress, PrestaShop e dei loro plugin, due tornano di continuo: XSS e CSRF. Sembrano roba da programmatori, ma capire l’idea che c’è dietro ti aiuta a dare il giusto peso a un aggiornamento e a non sottovalutare un avviso. In questo articolo le spieghiamo in parole semplici, senza entrare nei dettagli tecnici di come si sfruttano: ci interessa capire il rischio e come ci si difende.
XSS: quando il sito mostra codice che non è suo
XSS sta per Cross-Site Scripting. Un sito moderno mostra continuamente testo che arriva da fuori: i commenti, le recensioni dei prodotti, il nome inserito in un modulo, le parole cercate nella barra di ricerca. Se il sito prende quel testo e lo rimette nella pagina senza controllarlo, qualcuno può infilarci dentro uno script invece di semplici parole. A quel punto il browser dei visitatori esegue quello script come se fosse parte del sito.
Il problema non è il server, ma chi visita la pagina. Uno script eseguito nel browser di un visitatore può, a seconda dei casi:
- mostrare contenuti falsi o reindirizzare verso un altro sito;
- leggere ciò che l’utente scrive nella pagina;
- agire per conto dell’utente collegato, se quell’utente è un amministratore.
L’ultimo punto è quello che rende l’XSS pericoloso per un CMS: se lo script viene eseguito mentre un amministratore guarda la pagina (per esempio mentre modera i commenti), può sfruttare i suoi permessi.
Le due forme più comuni, in breve
| Tipo | Cosa succede | Perché preoccupa |
|---|---|---|
| Memorizzato | Il testo malevolo viene salvato nel database (un commento, una recensione, un campo del profilo) e mostrato a chiunque apra quella pagina | Colpisce tutti i visitatori, a volte per molto tempo prima che qualcuno se ne accorga |
| Riflesso | Il testo viaggia dentro un link costruito apposta e torna indietro nella pagina solo a chi clicca quel link | Si combina con il phishing: il link sembra del tuo sito perché è davvero del tuo sito |
CSRF: far fare all’utente qualcosa che non voleva
CSRF sta per Cross-Site Request Forgery, cioè «richiesta contraffatta da un altro sito». Qui il trucco è diverso. Quando sei collegato al pannello di amministrazione del tuo sito, il browser conserva la sessione: ogni richiesta che parte verso il tuo sito viene accettata come tua.
Se un’azione importante (cambiare l’email dell’amministratore, creare un utente, modificare un’impostazione) si può compiere con una semplice richiesta, una pagina esterna potrebbe far partire quella richiesta dal tuo browser mentre sei collegato. Tu vedi solo una pagina qualunque; nel frattempo il tuo sito riceve un ordine che sembra arrivare da te.
La difesa standard è che ogni azione importante richieda un codice monouso generato dal sito stesso (in WordPress si chiama nonce, in PrestaShop token): una pagina esterna non lo conosce, e la richiesta viene rifiutata. Quando un plugin ha una falla CSRF, di solito significa che uno sviluppatore ha dimenticato questo controllo su una certa funzione.
Cosa hanno in comune
XSS e CSRF hanno due caratteristiche che conviene tenere a mente:
- Sono falle del codice del sito, quasi sempre di un plugin, di un tema o di un modulo. Non dipendono dalla password né dal server.
- Spesso colpiscono attraverso un utente: per funzionare hanno bisogno che qualcuno, magari proprio tu, visiti una pagina o clicchi un link.
Per questo la difesa principale è doppia: codice aggiornato e un po’ di prudenza da parte di chi amministra il sito.
Come ti difendi
1. Aggiorna, soprattutto i plugin
La grande maggioranza delle falle XSS e CSRF viene scoperta e corretta dagli sviluppatori. Il rischio vero è restare sulla versione vecchia quando la correzione è già disponibile e la falla è già pubblica. Aggiorna regolarmente WordPress, PrestaShop, temi, plugin e moduli; se hai installato il CMS con Installatron, puoi attivare gli aggiornamenti automatici con un backup prima di ogni aggiornamento.
2. Togli quello che non usi
Un plugin disattivato ma ancora presente nei file del sito può essere comunque un punto debole. Se non ti serve, eliminalo. Meno codice hai, meno falle possibili.
3. Scegli componenti affidabili
Preferisci plugin e moduli scaricati dalle fonti ufficiali, aggiornati di recente e con uno sviluppatore che risponde. Un componente abbandonato da anni non riceverà più correzioni.
4. Attenzione ai link mentre sei collegato
Molti attacchi di questo tipo funzionano solo se l’amministratore è collegato. Qualche abitudine semplice aiuta:
- esci dal pannello di amministrazione quando hai finito, invece di lasciarlo aperto per giorni;
- non aprire link ricevuti per email o chat che puntano al pannello del tuo sito: entra sempre digitando l’indirizzo o dai tuoi segnalibri;
- usa un browser aggiornato.
5. Modera i contenuti degli utenti
Commenti, recensioni e moduli di contatto sono i punti dove entra il testo esterno. Tenere attiva la moderazione dei commenti e limitare l’HTML consentito agli utenti riduce lo spazio di manovra.
Cosa facciamo noi
Sui nostri hosting il codice del tuo sito non è da solo:
- Security Intelligence ferma, fra l’altro, chi prova a far eseguire script malevoli ai tuoi visitatori o a infilare comandi nei moduli del sito;
- il firewall applicativo di cPGuard confronta le richieste con regole aggiornate di continuo e blocca quelle che cercano di sfruttare una falla;
- con la gestione delle vulnerabilità, quando viene scoperta una falla in un software diffuso arriva una protezione mirata, che tiene il sito difeso mentre aspetti l’aggiornamento ufficiale.
Sono protezioni che bloccano il traffico malevolo. Non sostituiscono gli aggiornamenti: li affiancano, coprendo il tempo che passa fra la scoperta di una falla e il momento in cui aggiorni.
In sintesi
- XSS: il sito mostra ai visitatori codice che non è suo, perché non controlla il testo che riceve.
- CSRF: il sito esegue un’azione credendo che l’abbia chiesta tu, perché non verifica il codice monouso.
- Difese: aggiornamenti, meno plugin, fonti affidabili, prudenza con i link mentre sei collegato.
- Sul server, Security Intelligence e cPGuard filtrano i tentativi più comuni.
Hai ricevuto un avviso di sicurezza su un plugin e non sai quanto sia grave? Apri un ticket dall’area clienti: ti aiutiamo a capire se riguarda il tuo sito.