100 % locale — i tuoi dati non lasciano mai il tuo browser

Escape SQL — un literal per la tua query

Raddoppia gli apici singoli e racchiudi il risultato: un literal di stringa ANSI SQL completo, pronto per la query che scrivi a mano in un client.

Istantaneo Privato Zero cookie

Input Text

Output SQL Escaped

Cosa fa questo strumento

Due cose: raddoppia ogni apice singolo — è così che l’SQL ANSI scrive un apice dentro un literal — e racchiude il risultato, così ciò che torna è un literal completo.

O'Brien   →   'O''Brien'

L’SQL standard non ha escape con barra rovesciata, nient’altro viene trasformato.

È la racchiusura a rendere esatto il viaggio di andata e ritorno. Senza, un apice isolato diventa '', che lo strumento di unescape legge come stringa vuota fra apici: il carattere sparisce. quote_literal() di PostgreSQL e SqlString.escape() di Node restituiscono la forma racchiusa per la stessa ragione. Disattiva Con apici se vuoi solo l’interno, da incollare fra apici tuoi; quella forma non è reversibile.

Da leggere prima di usarlo

Fare l’escape degli apici non è una difesa contro la SQL injection. È un aiuto di sintassi, non un confine di sicurezza. Qualsiasi valore che arrivi da un utente, da una richiesta, da un file o da un altro sistema va in una query parametrizzata — un segnaposto che il driver associa separatamente, così il valore non diventa mai parte del testo dell’istruzione e nessuna virgolettatura può cambiare il significato della query.

Questo strumento serve per l’altro caso: un literal che stai scrivendo tu in una migrazione, in un set di dati di prova o in un SELECT estemporaneo, il cui testo contiene un apostrofo e di cui vuoi la forma giusta senza metterti a contare gli apici.

Avvertenza sui dialetti

La regola ANSI è il denominatore comune più sicuro, ma non è universale. MySQL, a meno che non giri con NO_BACKSLASH_ESCAPES, tratta anche \ come carattere di escape dentro ai literal — quindi un valore che finisce con un backslash non è del tutto coperto dal solo raddoppio degli apici. Controlla il tuo dialetto prima di affidarti a questo per qualcosa che non sia SQL scritto a mano.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Questo mi protegge dalla SQL injection?
No, e non dovresti usarlo per questo. Fare l'escape degli apici non è un confine di sicurezza: l'unica difesa affidabile è la query parametrizzata, dove il valore non diventa mai parte del testo dell'istruzione. Usa questo strumento per SQL che scrivi tu a mano, non per SQL costruito da input dell'utente.
Perché viene raddoppiato solo l'apice singolo?
Perché è quello che dice lo standard ANSI. In SQL standard un literal di stringa è delimitato da apici singoli e un apice interno si scrive due volte — non esiste alcun escape con backslash.
Basta per MySQL?
Non necessariamente. A meno che NO_BACKSLASH_ESCAPES sia attivo, MySQL tratta anche il backslash come carattere di escape dentro ai literal, quindi un backslash finale può cambiare il modo in cui viene letto l'apice successivo. Questo strumento applica solo la regola ANSI.
Perché l’output contiene gli apici esterni?
Perché quello è il literal intero, ed è l’unica forma che sopravvive a un andata e ritorno. Un apice isolato con escape ma non racchiuso dà `''`, indistinguibile da una stringa vuota fra apici. Disattiva **Con apici** se vuoi solo l’interno.

Convertitori correlati