Escapovanie reťazcov

Escapovať alebo zrušiť escapovanie reťazcov pre 8 formátov: HTML, XML, JavaScript, Java, .Net (C#), JSON, CSV a SQL.
Všetko spracovanie prebieha lokálne v prehliadači — dáta sa nikdy nenahrávajú na žiadny server.
Formát:
Smer:
⚠ Bezpečnostné upozornenie: escapovanie reťazcov nie je náhradou za parametrizované dopyty. Samotné escapovanie NEZABRÁNI vkladaniu SQL. V produkčnom kóde sa vždy používajú parametrizované dopyty (pripravené príkazy).
Ako použiť: zvolí sa formát a smer (escapovať / zrušiť escapovanie), potom sa text napíše alebo vloží — výstup sa aktualizuje automaticky. Na ručné spustenie prevodu sa klikne na Spracovať.
Pri režimoch JSON, JavaScript, Java a .Net sa označí Escapovať všetky znaky mimo ASCII, aby sa znaky ako čínština prevádzali na sekvencie \uXXXX.
Zrušiť escapovanie obráti escapovanie: &lt; sa zmení na <, \n na nový riadok atď.
HTML: Escapovať prevádza & < > " ' na entity HTML (&amp; &lt; &gt; &quot; &#39;). Používa sa pri vkladaní textu vytvoreného používateľom do HTML na zabránenie útokom XSS.
Zrušiť escapovanie prevádza entity HTML (&amp; &lt; &gt; &quot; &#39;) späť na pôvodné znaky. Na spoľahlivé dekódovanie všetkých pomenovaných a číselných entít sa používa natívny analyzátor HTML prehliadača.
XML: Escapovať prevádza tých istých 5 znakov ako HTML (& < > " ') na entity bezpečné pre XML. XML vyžaduje escapovanie všetkých znakov &, a to aj v hodnotách atribútov.
Zrušiť escapovanie prevádza entity XML späť na pôvodné znaky. Zvláda 5 preddefinovaných entít XML a číselné referencie znakov. Rovnaká logika ako pri zrušení escapovania HTML.
JavaScript: Escapovať prevádza špeciálne znaky na úniky JavaScriptu: \n \t \\ \" \' \xHH \uHHHH \u{H...}. Používa sa pri dynamickom generovaní reťazcových literálov v JavaScripte.
Zrušiť escapovanie prevádza úniky JavaScriptu (\n \t \xHH \uHHHH atď.) späť na doslovné znaky. Zvláda všetky štandardné únikové sekvencie ECMAScript vrátane únikov bodov kódu \u{H...}.
JSON: Escapovať prevádza \" \\ a riadiace znaky na únikové sekvencie bezpečné pre JSON podľa RFC 8259. Používa sa pri vkladaní textu do hodnôt reťazcov JSON.
Zrušiť escapovanie prevádza únikové sekvencie JSON (\" \\ \n \uXXXX atď.) späť na doslovné znaky. Riadi sa RFC 8259: dekódujú sa iba platné únikové sekvencie JSON.
CSV: Escapovať podľa RFC 4180: obalí polia do dvojitých úvodzoviek, ak obsahujú čiarky, dvojité úvodzovky alebo zalomenia riadkov. Vnútorné dvojité úvodzovky sa zdvojujú (" → "").
Zrušiť escapovanie obráti escapovanie CSV podľa RFC 4180: odstráni vonkajšie dvojité úvodzovky a zruší zdvojenie vnútorných úvodzoviek ("" → "). Správne zvláda viacriadkové polia a úvodzovkované čiarky.
SQL: Escapovať escapuje jednoduché úvodzovky ich zdvojením (' → ''), čo funguje vo všetkých hlavných databázach (MySQL, PostgreSQL, SQL Server, SQLite). Rieši iba escapovanie reťazcových literálov — nechráni pred vkladaním SQL v dynamických dopytoch.
Zrušiť escapovanie prevádza zdvojené jednoduché úvodzovky ('' → ') späť na jednoduché úvodzovky. Obracia štandardné escapovanie reťazcových literálov SQL.
Java: Escapovať prevádza špeciálne znaky na úniky jazyka Java: \n \t \r \\ \" \' \uXXXX atď. Používa sa pri generovaní reťazcových literálov v Jave.
Zrušiť escapovanie prevádza úniky jazyka Java späť na doslovné znaky. Zvláda všetky štandardné únikové sekvencie Javy vrátane únikov Unicode \uXXXX.
.Net (C#): Escapovať prevádza špeciálne znaky na úniky jazyka C#: \n \t \r \a \v \0 \\ \" \uXXXX \UHHHHHHHH atď. Používa sa pri generovaní reťazcových literálov v C#.
Zrušiť escapovanie prevádza úniky jazyka C# späť na doslovné znaky. Zvláda všetky štandardné sekvencie C# vrátane \UHHHHHHHH (UTF-32) a hexadecimálnych únikov \xHH... s premenlivou dĺžkou.
Escapovanie závisí od kontextu

Rovnaký text potrebuje rôzne úniky podľa miesta, kam sa dostane: telo HTML potrebuje &lt; &amp; &gt;, atribút v dvojitých úvodzovkách navyše &quot;, reťazec JavaScriptu spätné lomky a URL percentuálne kódovanie. Escapovanie pre nesprávny kontext je spôsob, ako vzniká vkladanie značiek a XSS.

Pravidlo palca: escapuje sa pre cieľ, nie pre zdroj — rozhoduje, kam dáta smerujú, nie odkiaľ pochádzajú.