Escapa och avescapa strängar
Escapa eller avescapa en sträng för JSON, JavaScript, mallsträngar, SQL, CSV, HTML-attribut, reguljära uttryck och URL:er, direkt i din webbläsare.
Escapning ersätter inte parametriserade frågor (prepared statements). Använd resultatet för att läsa eller felsöka SQL, aldrig för att bygga frågor av användarindata.
Så escapar eller avescapar du en sträng
- Välj mål under Format: JSON-sträng, JavaScript-sträng, JavaScript-mallsträng, SQL-strängliteral, CSV-fält, HTML-attributvärde, reguljärt uttryck eller URL-komponent.
- Skriv eller klistra in din text i indatarutan.
- Klicka på Escapa för att göra om vanlig text till en säker literal, eller på Avescapa för att göra om en literal till vanlig text igen. Resultatet uppdateras medan du skriver, i den riktning du senast valde.
- Justera de alternativ som visas för formatet: Lägg till omgivande citattecken, Escapa tecken utanför ASCII eller Mellanslag som + (formulärdata).
- Klicka på Kopiera, eller på Använd resultatet som indata för att vända på operationen och kontrollera att du får tillbaka originalet.
Antalet tecken före och efter visas under knapparna. Allt körs i din webbläsare och inget laddas upp.
Vad varje format gör
- JSON-sträng: escapar
",\och styrtecken (\n,\t,\u0000…), precis somJSON.stringify. Med Escapa tecken utanför ASCII blir varje tecken över U+007E till\uXXXX, så attåblirå(emoji blir ett surrogatpar som😀). Vid avescapning godtas texten med eller utan sina dubbla citattecken, och råa radbrytningar tolereras. - JavaScript-sträng (‘…’): escapar omvänt snedstreck, enkla citattecken, radbrytningar och styrtecken, samt U+2028 och U+2029, som får äldre motorer att krascha. Avescapningen förstår
\x41,A,\u{1F600}, äldre oktala escape-sekvenser som\101och radfortsättningar. - JavaScript-mallsträng (`…`): escapar backticks, omvända snedstreck och
${så att inget uttryck utvärderas. Radbrytningar och tabbar lämnas som de är, eftersom mallsträngar tillåter dem. - SQL-strängliteral (‘…’): dubblerar enkla citattecken (
O'Brien→'O''Brien'), som i standard-SQL. Avescapningen avvisar ett citattecken som inte är dubblerat. Omvända snedstreck lämnas orörda: MySQL behandlar i standardläget även\som escape-tecken, så kontrollera din databas regler. - CSV-fält (RFC 4180): omsluter fältet med dubbla citattecken och dubblerar citattecken inuti när det innehåller komma, semikolon, tabb, citattecken, radbrytning eller inledande/avslutande mellanslag. Lägg till omgivande citattecken tvingar fram citattecknen.
- HTML-attributvärde: ersätter
&,<,>,"och'med entiteter, vilket är säkert i attribut med både enkla och dubbla citattecken. Avescapningen avkodar numeriska referenser och&,<,>,",'och . - Reguljärt uttryck (literal text): sätter omvänt snedstreck före
. * + ? ^ $ { } ( ) | [ ] \ /samt radbrytningar och tabbar, så att mönstret matchar texten bokstavligt. Resultatet är giltigt med eller utan flagganu. - URL-komponent (procentkodning): fungerar som
encodeURIComponentoch kodar allt utom bokstäver, siffror och- _ . ! ~ * ' ( )som UTF-8-byte, så attöblir%C3%B6. Mellanslag som + (formulärdata) använder konventionen förapplication/x-www-form-urlencoded.
Escapning är inget säkerhetsskydd för SQL
När du väljer SQL visar verktyget en påminnelse, och den tål att upprepas: det verkliga skyddet mot SQL-injektion är en parametriserad fråga (prepared statement), där värdet skickas separat från SQL-texten. Att escapa för hand är bräckligt: det beror på databasen, anslutningens teckenuppsättning och inställningar som MySQL:s hantering av omvänt snedstreck. Använd resultatet för att läsa loggar, skriva testdata eller felsöka en fråga, aldrig för att bygga frågor av användarindata.
För CSV varnar verktyget också när ett värde börjar med =, +, - eller @: ett kalkylprogram kan köra det som en formel (CSV-injektion). Citattecken förhindrar inte det. Den vanliga motåtgärden är att inleda värdet med en apostrof eller ett mellanslag.
Vanliga frågor
Vad är skillnaden mellan en JSON-sträng och en JavaScript-sträng?
JSON tillåter bara dubbla citattecken och en liten uppsättning escape-sekvenser (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript godtar även enkla citattecken, backticks, \x41, \u{…}, \v och \0. Giltiga JSON-sekvenser är giltig JavaScript, men inte tvärtom.
Varför misslyckas avescapningen med ”Ogiltig escape-sekvens”?
Texten innehåller ett omvänt snedstreck följt av något som formatet inte tillåter, som \u12 med färre än fyra hexsiffror, eller ett ensamt omvänt snedstreck i slutet. Felmeddelandet visar den felaktiga sekvensen.
Behöver varje CSV-fält citattecken?
Nej. RFC 4180 kräver bara citattecken när fältet innehåller komma, dubbla citattecken eller radbrytning. Verktyget sätter också citattecken kring semikolon, tabbar och inledande eller avslutande mellanslag, eftersom många kalkylprogram – till exempel Excel med svenska inställningar, där semikolon är avgränsare – använder dem som avgränsare eller tar bort dem.
Räcker HTML-attributescapningen för att förhindra XSS?
Den är korrekt för text som placeras inuti ett attributvärde inom citattecken. Den räcker inte för attribut som själva är kod eller URL:er, som onclick eller href="javascript:…". De kräver validering, inte bara escapning.
Skickas min text till en server?
Nej. Alla konverteringar körs lokalt i din webbläsare, så du kan tryggt klistra in konfigurationsvärden eller data som du inte vill dela.
Relaterade verktyg
- URL-kodare och avkodare Gratis URL-kodare och avkodare. Procentkoda frågeparametrar eller hela URL:er, avkoda %XX-sekvenser och tolka + som mellanslag. Körs i webbläsaren.
- HTML-entiteter – koda och avkoda Koda specialtecken som HTML-entiteter (namngivna, decimala eller hex) eller avkoda valfri entitet med hela listan över 2 231 namngivna referenser i HTML5.
- JSON-formaterare och validerare Gratis JSON-formaterare och validerare som snyggar till, minifierar och kontrollerar JSON i webbläsaren, med syntaxfel angivna med rad och kolumn.
- Regex-testare Testa reguljära uttryck i JavaScript live med markerade träffar, fångande grupper, ersättning och en förklaring av varje del av mönstret.