Escape di stringhe
String Escaper
Applica e toglie l’escape delle stringhe secondo le regole di JSON, JavaScript, SQL, shell, CSV ed espressioni regolari.
Fa l’escape di un pezzo di testo perché lo si possa incollare dentro un letterale di stringa — in JSON, JavaScript, Python, Java, C#, SQL, un comando di shell, un campo CSV o un’espressione regolare — e lo riporta indietro. Ogni destinazione ha le sue regole, e le differenze fra loro sono esattamente il posto in cui vivono i bug di injection.
RFC 8259: `\" \\ \/ \b \f \n \r \t` e `\uXXXX` per il resto. Niente `\'`, niente `\x`, niente `\0`.
Testo
Con escape
Ingresso
0 caratteri
Uscita
0 caratteri
Come si usa
Scegliere il linguaggio di destinazione
La nota sotto il selettore dice di che cosa quella destinazione fa davvero l’escape. JSON è più severo di JavaScript; un template literal ha due caratteri in più di cui preoccuparsi; la shell con apici singoli è un problema diverso dalla shell con virgolette doppie.
Incollare il testo grezzo
Gli a capo, le virgolette e i caratteri non ASCII sono tutti gestiti. Quello che esce è l’*interno* del letterale: le virgolette che lo circondano si mettono comunque a mano.
Controllare «si inverte senza perdite»
L’indicatore sotto l’uscita rifà l’unescape del risultato e lo confronta con quello che si è scritto. Se dice di no, per questa destinazione l’escape perde qualcosa e la stringa che si incolla non è la stringa che si aveva.
Domande frequenti
Fare l’escape rende sicuro il mio SQL?
No. Fare l’escape di un letterale non è la stessa cosa di una query parametrizzata, e questo strumento non può conoscere la modalità di quoting del proprio database, il suo set di caratteri, né sapere se il valore finisce in un posto in cui una virgoletta non è il delimitatore. Vanno usati i parametri legati; questo serve a leggere una query, non a costruirne una per la produzione.
Perché la modalità SQL non usa le barre rovesciate?
Perché lo SQL standard non ha l’escape con barra rovesciata: una virgoletta si scrive due volte. L’escape con barra rovesciata è un’estensione di MySQL, e il codice che la dà per scontata è l’origine di buona parte delle injection. Se serve il comportamento di MySQL, deve servire consapevolmente.
Che cosa fa la destinazione `\uXXXX`?
Trasforma ogni carattere non ASCII in un escape `\uXXXX`, coppie surrogate comprese. La sua direzione più utile è quella inversa: un file .properties o una riga di log che una catena solo-ASCII ha rovinato torna a leggersi con le lettere accentate quando se ne fa l’unescape.
La shell con apici singoli è davvero sicura per qualunque stringa?
Per la stringa in sé sì: dentro gli apici singoli POSIX niente ha significato, e una virgoletta si scrive `'\''`. Quello da cui non protegge è il programma che si sta chiamando e che interpreta l’argomento, o una shell che non è POSIX. È una regola di quoting, non una sandbox.
Può ricevere da
Formattatore SQL
SQL Formatter
Formatta l’SQL con maiuscole delle parole chiave, indentazione e posizione delle virgole configurabili, nei dialetti principali.
Codificatore di entità HTML
HTML Entity Encoder
Applica e toglie l’escape delle entità HTML, con uscita per nome, in decimale e in esadecimale.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Formattatore e validatore YAML
YAML Formatter & Validator
Riporta il YAML a un’indentazione coerente, lo valida e segnala gli errori di tabulazione e di ancora che rompono i parser.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Codificatore di entità HTML
HTML Entity Encoder
Applica e toglie l’escape delle entità HTML, con uscita per nome, in decimale e in esadecimale.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Riformattare un elenco
List Formatter
Trasforma delle righe in una lista separata da virgole, in una clausola SQL IN con gli apici, in un array JSON o in un elenco puntato, e viceversa.
Formattatore SQL
SQL Formatter
Formatta l’SQL con maiuscole delle parole chiave, indentazione e posizione delle virgole configurabili, nei dialetti principali.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.