Skip to main content
CheckTown
Dev Tools

Escaping delle stringhe: Come gestire i caratteri speciali nel codice

Pubblicato 6 min di lettura
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 &lt;, > in &gt;, & in &amp;. 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.

Strumenti correlati