← Tutti gli episodi
Copertina di Il codice degli altri nella tua pagina: la fiducia mal riposta
Stagione 18 · Episodio 006

Il codice degli altri nella tua pagina: la fiducia mal riposta

29 agosto 2026 5:10
0:00 5:10

Ciao, e benvenuto nella sesta puntata della diciottesima stagione. Nella scorsa puntata abbiamo capito il principio del non fidarsi di ciò che arriva da fuori, e come istruzioni ostili possano camuffarsi da dati. Oggi vediamo una versione particolare e insidiosa di questo problema, che colpisce direttamente noi utenti, dentro il browser, mentre navighiamo: il pericolo che una pagina finisca per eseguire codice non suo, codice di un malintenzionato, che agisce sfruttando la fiducia che noi riponiamo in quel sito. È come se qualcuno mettesse parole altrui nella tua bocca.

Ripartiamo da come funziona una pagina web, richiamando le stagioni sui browser. Una pagina moderna non è solo testo e immagini: contiene anche del codice che gira nel tuo browser, dei piccoli programmi che la rendono viva e interattiva. Questo codice viene eseguito dal tuo browser con la fiducia che tu accordi a quel sito: se ti fidi del sito, il tuo browser esegue il suo codice, permettendogli di fare cose per tuo conto, di accedere a ciò che riguarda la tua sessione su quel sito. Questa fiducia è normale e necessaria: senza di essa, il Web interattivo non esisterebbe. Ma è anche il punto su cui fa leva l'attacco di oggi.

Ecco il pericolo, spiegato concettualmente. Immagina che un malintenzionato riesca a far apparire, dentro una pagina di un sito di cui ti fidi, del proprio codice nascosto. Magari lo infila attraverso un contenuto che sembra innocuo, sfruttando proprio quel problema dell'input di cui parlavamo: il sito, fidandosi di ciò che riceve, incorpora nella pagina il contenuto ostile, che contiene codice camuffato. A quel punto, quando tu visiti quella pagina, il tuo browser esegue quel codice ostile credendo che sia parte legittima del sito di cui ti fidi. E il codice, sfruttando la tua fiducia in quel sito, può agire per conto dell'attaccante: spiare ciò che fai lì, rubare la tua sessione, compiere azioni a tuo nome. Il codice altrui parla con la voce del sito che ti fidi.

Voglio rendere l'idea con un'immagine. Immagina di ricevere una lettera che credi scritta da un amico fidato, e di eseguire le richieste che contiene proprio perché ti fidi di lui. Ma un impostore è riuscito a infilare, dentro quella lettera, delle frasi sue, camuffate come se fossero dell'amico. Tu, fidandoti del mittente, esegui anche le sue richieste, credendole dell'amico. Il trucco non sta nel forzare la tua fiducia, ma nel dirottarla: mettere le proprie parole nella bocca di qualcuno di cui ti fidi. Il codice ostile nella pagina fa esattamente questo: si traveste da parte del sito fidato.

Questa è una delle famiglie di attacchi più diffuse e studiate del Web, proprio perché è subdola: colpisce sfruttando la fiducia legittima, invece di romperla frontalmente. E la difesa richiede di affrontarla su più livelli, che vale la pena capire nel principio. Da un lato, i siti devono applicare rigorosamente il principio della scorsa puntata: non fidarsi dei contenuti che ricevono, e soprattutto non lasciare mai che un contenuto in arrivo possa trasformarsi in codice eseguibile. Devono trattare ciò che gli utenti scrivono come testo inerte da mostrare, mai come istruzioni da eseguire, mantenendo netta la separazione tra contenuto e codice. È di nuovo il principio del tenere separati i dati dalle istruzioni, applicato dentro la pagina.

Ma c'è anche una seconda linea di difesa, che vive nel browser stesso, e riprende un tema delle stagioni sui browser: tenere i siti separati tra loro. Il browser applica una regola fondamentale: il codice di un sito non può ficcare il naso in ciò che riguarda un altro sito. Ciascun sito vive nel suo recinto, isolato dagli altri, così che il codice di un sito non possa rubare informazioni o agire su un altro sito che hai aperto. Questa separazione tra siti è una delle protezioni più importanti del browser moderno: limita i danni, perché anche se un sito viene compromesso, il male resta confinato lì, senza potersi allargare agli altri siti che stai usando. È lo stesso principio dell'isolamento che abbiamo ammirato per i container e i processi.

Voglio collegare tutto questo a un principio ricorrente della sicurezza: l'isolamento come difesa. Tenere le cose in recinti distinti fa sì che un problema in una parte non si propaghi alle altre. Lo abbiamo visto con i container, i processi, i permessi; qui nel tenere i siti separati nel browser. Non puoi impedire ogni singola falla, ma puoi fare in modo che, quando accade, resti confinata e faccia il minor danno possibile. Compartimentare, isolare, limitare: è la saggezza di chi sa che qualcosa, prima o poi, andrà storto, e si prepara a contenerne le conseguenze.

Per oggi ci fermiamo qui. Una pagina web esegue codice con la fiducia che accordi al sito, e il pericolo è che un malintenzionato riesca a infilare il proprio codice in una pagina fidata, così che il tuo browser lo esegua credendolo legittimo, dirottando la tua fiducia, come un impostore che mette parole nella bocca di un amico. La difesa è su più livelli: i siti non devono lasciare che i contenuti ricevuti diventino codice, mantenendo separati contenuto e istruzioni; e il browser tiene i siti isolati tra loro, così che un problema resti confinato. È di nuovo l'isolamento come difesa. Nella prossima puntata affrontiamo il fronte più umano di tutti: ingannare le persone. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.