Escaper de șiruri

Escapare sau dezescapare a șirurilor pentru 8 formate: HTML, XML, JavaScript, Java, .Net (C#), JSON, CSV și SQL.
Toată prelucrarea are loc local în browser — datele nu se încarcă niciodată pe vreun server.
Format:
Direcție:
⚠ Avertisment de securitate: escaparea șirurilor nu înlocuiește interogările parametrizate. Escaparea singură NU previne injectarea SQL. În codul de producție se folosesc întotdeauna interogări parametrizate (instrucțiuni pregătite).
Cum se folosește: se alege un format și o direcție (Escapare / Dezescapare), apoi se scrie sau se lipește textul — rezultatul se actualizează automat. Conversia se declanșează manual prin butonul Procesează.
Pentru modurile JSON, JavaScript, Java și .Net se bifează Escapează toate caracterele non-ASCII pentru a converti caractere precum cele chinezești în secvențe \uXXXX.
Dezescaparea inversează escaparea: < devine <, \n devine o întrerupere de rând etc.
HTML: Escapare transformă & < > " ' în entități HTML (& < > " '). Se folosește când se încorporează text generat de utilizatori în HTML, pentru a preveni atacurile XSS.
Dezescapare transformă entitățile HTML (& < > " ') înapoi în caracterele originale. Folosește analizorul HTML nativ al browserului pentru o decodare sigură a tuturor entităților cu nume și numerice.
XML: Escapare transformă aceleași 5 caractere ca HTML (& < > " ') în entități sigure pentru XML. XML cere ca toate caracterele & să fie escapate, chiar și în valorile atributelor.
Dezescapare transformă entitățile XML înapoi în caracterele originale. Gestionează cele 5 entități XML predefinite, plus referințele numerice de caractere. Aceeași logică precum dezescaparea HTML.
JavaScript: Escapare transformă caracterele speciale în secvențe de escapare JavaScript: \n \t \\ \" \' \xHH \uHHHH \u{H...}. Se folosește când se generează dinamic literali de șiruri JavaScript.
Dezescapare transformă secvențele de escapare JavaScript (\n \t \xHH \uHHHH etc.) înapoi în caractere literale. Gestionează toate secvențele standard ECMAScript, inclusiv escapările de puncte de cod \u{H...}.
JSON: Escapare transformă \" \\ și caracterele de control în secvențe de escapare sigure pentru JSON, conform RFC 8259. Se folosește când se încorporează text în valori de șiruri JSON.
Dezescapare transformă secvențele de escapare JSON (\" \\ \n \uXXXX etc.) înapoi în caractere literale. Respectă RFC 8259: se decodează doar secvențele de escapare JSON valide.
CSV: Escapare conform RFC 4180: încadrează câmpurile între ghilimele duble dacă conțin virgule, ghilimele duble sau întreruperi de rând. Ghilimelele duble interne se dublează (" → "").
Dezescapare inversează escapările CSV din RFC 4180: elimină ghilimelele duble exterioare și dedublează ghilimelele interne ("" → "). Gestionează corect câmpurile pe mai multe rânduri și virgulele dintre ghilimele.
SQL: Escapare escapează ghilimelele simple prin dublare (' → ''), ceea ce funcționează în toate bazele majore (MySQL, PostgreSQL, SQL Server, SQLite). Aceasta tratează doar escaparea literalilor de șir — nu protejează împotriva injectării SQL în interogări dinamice.
Dezescapare transformă ghilimelele simple dublate ('' → ') înapoi în ghilimele simple. Inversează escaparea standard a literalilor de șir SQL.
Java: Escapare transformă caracterele speciale în secvențe de escapare Java: \n \t \r \\ \" \' \uXXXX etc. Se folosește când se generează literali de șiruri Java.
Dezescapare transformă secvențele de escapare Java înapoi în caractere literale. Gestionează toate secvențele standard Java, inclusiv escapările Unicode \uXXXX.
.Net (C#): Escapare transformă caracterele speciale în secvențe de escapare C#: \n \t \r \a \v \0 \\ \" \uXXXX \UHHHHHHHH etc. Se folosește când se generează literali de șiruri C#.
Dezescapare transformă secvențele de escapare C# înapoi în caractere literale. Gestionează toate secvențele C# standard, inclusiv \UHHHHHHHH UTF-32 și escapările hexazecimale \xHH... de lungime variabilă.
Escaparea depinde de context

Același text are nevoie de escapări diferite în funcție de locul unde ajunge: corpul HTML are nevoie de &lt; &amp; &gt;, un atribut cu ghilimele duble are nevoie în plus de &quot;, un șir JavaScript are nevoie de escapări cu bară inversă, iar un URL are nevoie de codificare procentuală. Escaparea pentru un context greșit este modul în care apar injectarea de marcaj și XSS.

Regula generală: se escapează pentru destinație, nu pentru sursă — decizia se ia după locul unde ajung datele, nu după locul de unde au venit.