Caratteri invisibili nel codice
Nel codice sorgente i caratteri invisibili non sono solo un fastidio: sono un rischio di sicurezza. Un controllo bidirezionale può far visualizzare una riga in un ordine e compilarla in un altro, e un carattere a larghezza zero può rompere un identificatore che sembra identico a un altro. Questo strumento li espone e li rimuove senza toccare alcun carattere visibile.
Altro: cosa è stato trovato, vista a raggi X e opzioni
Vista a raggi X
Il tuo testo con ogni carattere nascosto esposto come etichetta. Passa il mouse per il nome Unicode.
Cosa è stato trovato
| Punto di codice | Carattere | Conteggio | Azione |
|---|
L'attacco di riordino (Trojan Source)
I caratteri di override bidirezionale (come U+202E) riordinano la visualizzazione del testo che segue. In un commento o in una stringa possono far vedere al revisore una logica e far eseguire al compilatore un'altra. L'attacco è stato documentato nel 2021 (Boucher e Anderson) e riguarda la maggior parte dei linguaggi. Carica l'esempio nello strumento e apri la vista a raggi X: i chip rossi segnano i caratteri di override e isolamento.
Altri rischi nel codice
- Codici di controllo da sessioni di terminale (ESC, U+001B) che rompono gli analizzatori.
- Spazi indivisibili che si insinuano nell'indentazione e rompono i linguaggi sensibili agli spazi.
- BOM (U+FEFF) all'inizio di un file, che corrompe il parsing JSON e le intestazioni CSV.
Domande frequenti
Come entrano questi caratteri nel mio codice?
Copiando da pagine web, PDF, chat IA o documenti. Possono anche essere inseriti di proposito in un attacco di riordino.
La pulizia cambia la logica del mio codice?
No. Rimuove solo i caratteri invisibili e normalizza gli spazi strani; ogni carattere visibile resta uguale, nello stesso ordine.