Input

Modalità:

Output

Cos'è l'escape SQL?

Hai mai costruito una query SQL con input dell'utente che si è interrotta perché qualcuno ha digitato un nome come O'Brien? Quell'apostrofo rompe la query — e peggio ancora, senza escape, apre la porta agli attacchi SQL injection, una delle vulnerabilità più comuni nell'OWASP Top 10. L'escape SQL converte i caratteri speciali per incorporare le stringhe in modo sicuro nelle query SQL. Sebbene le query parametrizzate siano lo standard raccomandato, l'escape manuale è ancora necessario per sistemi legacy. Riferimenti: documentazione stringhe PostgreSQL e letterali stringa MySQL.

L'escape più comune in SQL è il raddoppio delle virgolette singole: ' diventa ''.

Come usare lo strumento SQL Escape

1

Incolla la tua stringa SQL

Incolla la stringa SQL da escapare nell'editor di input.

2

Scegli una modalità

Seleziona Escape o Unescape.

3

Copia o scarica

Copia il risultato o scaricalo come file .sql.

Esempio di escape SQL

Ecco un esempio di escape di stringa SQL:

Stringa SQL grezza

Stringa SQL di input

Stringa SQL con escape

SQL con escape

Quando è importante l'escape SQL?

Esegui sempre l'escape dell'input utente prima di includerlo nelle query SQL per prevenire SQL injection.

Per formattare le query SQL, usa il formattatore SQL.

Domande frequenti

Quali caratteri gestisce l'escape SQL?

Le virgolette singole ' vengono raddoppiate a '' (SQL standard). I backslash \ vengono raddoppiati a \\ (MySQL e altri). Copre MySQL, PostgreSQL, SQLite e SQL Server.

Devo usare l'escape SQL invece delle query parametrizzate?

No — le query parametrizzate sono sempre l'approccio preferito per il nuovo codice. L'escape SQL è utile per sistemi legacy o quando devi sanificare dati al di fuori del codice applicativo.

Funziona per MySQL, PostgreSQL e SQL Server?

Sì per i casi comuni. Il raddoppio delle virgolette singole è standard in tutti i database principali. L'escape dei backslash è specifico di MySQL — PostgreSQL usa raddoppio standard o stringhe E'...'.

I miei dati SQL vengono inviati a un server?

No. Tutto viene elaborato nel browser. Le stringhe SQL non lasciano mai il dispositivo — nessun backend, nessun logging.

Cos'è SQL injection e come aiuta l'escape?

La SQL injection è un attacco in cui input malevoli eseguono comandi SQL non intenzionali. L'escape corretto impedisce che i caratteri iniettati vengano interpretati come sintassi SQL.

Strumenti correlati

Riferimenti: OWASP SQL Injection