In questo articolo
Cos'e l'escaping delle stringhe?
L'escaping delle stringhe e il processo di aggiunta di caratteri speciali affinche i caratteri con significato sintattico vengano trattati come testo letterale. Ogni linguaggio di programmazione e formato dati riserva certi caratteri — virgolette in JSON, parentesi angolari in HTML, segni di percentuale negli URL.
Senza un corretto escaping, le stringhe contenenti caratteri speciali causano errori di parsing, vulnerabilita di sicurezza come XSS e SQL injection, o producono output corrotto.
Formati di escaping spiegati
Contesti diversi hanno regole di escaping diverse:
- Escaping JSON — effettua l'escape di virgolette (\"), backslash (\\) e caratteri di controllo (\n, \t, \r)
- Escaping HTML — converte < in <, > in >, & in &. Impedisce ai browser di interpretare il contenuto come tag HTML
- Codifica URL — sostituisce i caratteri non sicuri con codici hex %XX (lo spazio diventa %20)
- Escaping SQL — raddoppia gli apici singoli (' diventa ''). Previene gli attacchi di SQL injection
- Escaping regex — antepone un backslash ai metacaratteri come . * + ? per farli corrispondere letteralmente
Casi d'uso comuni
L'escaping delle stringhe appare in tutto il ciclo di sviluppo:
- Incorporare input utente — un corretto escaping quando si inserisce in JSON, HTML o SQL previene errori e vulnerabilita
- Sanitizzare input dei form — le applicazioni web devono effettuare l'escape del contenuto inviato prima del rendering per prevenire attacchi XSS
- Costruire payload API — quando si costruiscono body di richieste JSON, tutti i valori stringa devono essere correttamente escaped
Prova gratuitamente — nessuna registrazione richiesta
Prova lo strumento di Escape →Escape vs Codifica: qual e la differenza?
Escape e codifica vengono spesso confusi. L'escape aggiunge marcatori affinche i caratteri vengano trattati letteralmente. L'output rimane nello stesso formato.
La codifica converte i dati da una rappresentazione a un'altra. La codifica Base64 trasforma i dati binari in testo ASCII. La distinzione chiave: l'escape preserva il formato, la codifica lo cambia.
Consigli e best practice
Un corretto escaping previene bug, falle di sicurezza e corruzione dei dati:
- Effettuate l'escape al confine — sempre al punto in cui le stringhe entrano in un nuovo contesto
- Evitate il doppio escaping — se il framework gia effettua l'escape dell'output, l'escape manuale produce backslash visibili
- Usate escaping specifico per il contesto — l'escaping HTML non protegge dall'SQL injection e viceversa
Domande frequenti
Quando devo effettuare l'escape manualmente vs usare una libreria?
Preferite sempre le funzioni di libreria. I linguaggi forniscono utility di escaping integrate che gestiscono correttamente i casi limite.
L'escaping delle stringhe previene tutti gli attacchi XSS?
L'escaping HTML previene la maggior parte degli attacchi XSS ma non tutti i vettori. Il contenuto in contesti JavaScript, CSS o URL richiede una sanitizzazione specifica aggiuntiva. Gli header CSP forniscono la protezione piu forte.
In che ordine effettuare l'escape quando i dati passano attraverso piu formati?
Effettuate l'escape prima per il contesto piu interno. Ad esempio, per incorporare una stringa in JSON che sara in un attributo HTML, prima JSON-escape poi HTML-escape.