Aller au contenu

Échappement de chaînes

String Escaper

Échappe et déséchappe des chaînes pour JSON, JavaScript, SQL, le shell, le CSV et les expressions régulières.

Échappe un morceau de texte pour qu'il puisse être collé à l'intérieur d'un littéral de chaîne — en JSON, JavaScript, Python, Java, C#, SQL, une commande shell, un champ CSV ou une expression régulière — et le déséchappe en retour. Chaque cible a ses propres règles, et les différences entre elles sont exactement là où vivent les bugs d'injection.

🔒 Fonctionne entièrement dans votre navigateurescapestringjsonshell
Règles
Sens

RFC 8259 : `\" \\ \/ \b \f \n \r \t` et `\uXXXX` pour le reste. Pas de `\'`, pas de `\x`, pas de `\0`.

Texte

Échappé

Entrée

0 caractères

Sortie

0 caractères

Comment s’en servir

  1. Choisissez le langage cible

    La note sous le sélecteur dit ce que cette cible échappe réellement. JSON est plus strict que JavaScript ; un littéral de gabarit a deux caractères de plus dont se soucier ; le shell entre apostrophes est un autre problème que le shell entre guillemets.

  2. Collez le texte brut

    Les retours à la ligne, les guillemets et le non-ASCII sont tous pris en charge. Ce qui sort est l'*intérieur* du littéral — les guillemets qui l'entourent restent à votre charge.

  3. Vérifiez « se retourne proprement »

    La statistique sous la sortie déséchappe le résultat et le compare à ce que vous avez tapé. Si elle dit non, l'échappement est avec perte pour cette cible, et la chaîne que vous collez n'est pas celle que vous aviez.

Questions fréquentes

L'échappement rend-il mon SQL sûr ?

Non. Échapper un littéral n'est pas la même chose qu'une requête paramétrée, et cet outil ne peut connaître ni le mode de guillemets de votre base, ni son jeu de caractères, ni si la valeur atterrit à un endroit où le guillemet n'est pas le délimiteur. Utilisez des paramètres liés ; servez-vous de ceci pour lire une requête, pas pour en construire une destinée à la production.

Pourquoi le mode SQL n'utilise-t-il pas d'antislashs ?

Parce que le SQL standard n'a pas d'échappement par antislash — un guillemet s'écrit deux fois. L'échappement par antislash est une extension MySQL, et le code qui suppose sa présence est à l'origine d'une bonne part des injections. Si vous voulez le comportement MySQL, il vous le faut délibérément.

Que fait la cible `\uXXXX` ?

Elle transforme chaque caractère non ASCII en un échappement `\uXXXX`, paires de substitution comprises. Sa direction la plus utile est l'inverse : un fichier properties ou une ligne de log qu'une chaîne de traitement purement ASCII a abîmée retrouve ses accents quand vous la déséchappez.

Le shell entre apostrophes est-il vraiment sûr pour n'importe quelle chaîne ?

Pour la chaîne elle-même, oui — rien n'a de sens à l'intérieur d'apostrophes POSIX, et une apostrophe s'écrit `'\''`. Ce contre quoi il ne protège pas, c'est le programme que vous appelez qui interprète l'argument, ou un shell qui n'est pas POSIX. C'est une règle de citation, pas un bac à sable.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.