Passa al contenuto principale

10. Considerazioni sulla sicurezza

Gli implementatori di UTF-8 devono essere consapevoli di diversi problemi di sicurezza.

Sequenze non valide

Una sequenza di byte UTF-8 PUÒ essere non valida perché contiene byte vietati, non può completare una sequenza valida, codifica un numero troppo grande o riservato, è troppo lunga, o non è codificata nella forma più breve possibile.

Attacchi con forma non più breve

Una sequenza di caratteri particolare contenente un carattere Unicode di valore basso (come "/") può essere critica in un contesto di sicurezza.

Esempi di attacchi

Carattere: '/' (barra)
Unicode: U+002F

Forma corretta:
UTF-8: 2F (1 byte)

Forme troppo lunghe (NON VALIDE):
C0 AF (2 byte)
E0 80 AF (3 byte)
F0 80 80 AF (4 byte)

Raccomandazioni di sicurezza

✅ 1. Validazione rigorosa

Validare sempre che le sequenze UTF-8 siano nella forma più breve, nell'intervallo di caratteri valido, e non codifichino coppie surrogate.

✅ 2. Rifiuto di sequenze non valide

Rifiutare immediatamente qualsiasi sequenza non valida.

✅ 3. Normalizzazione Unicode

Normalizzare le stringhe prima dei confronti di sicurezza.


Collegamenti correlati