Bộ thoát chuỗi

Thoát hoặc giải thoát chuỗi cho 8 định dạng: HTML, XML, JavaScript, Java, .Net (C#), JSON, CSV và SQL.
Mọi xử lý diễn ra cục bộ trong trình duyệt của bạn — dữ liệu của bạn không bao giờ được tải lên máy chủ nào.
Định dạng:
Chiều:
⚠ Cảnh báo bảo mật: Thoát chuỗi không thay thế được truy vấn tham số hóa. Chỉ thoát thôi KHÔNG ngăn được SQL injection. Luôn dùng truy vấn tham số hóa (prepared statement) trong mã production.
Cách dùng: Chọn định dạng và chiều (Thoát / Giải thoát), rồi gõ hoặc dán văn bản — đầu ra cập nhật tự động. Nhấn Xử lý để kích hoạt chuyển đổi thủ công.
Với các chế độ JSON, JavaScript, Java và .Net, chọn Thoát mọi ký tự không phải ASCII để chuyển các ký tự như tiếng Trung thành chuỗi \uXXXX.
Giải thoát đảo ngược việc thoát: &lt; thành <, \n thành xuống dòng, v.v.
HTML: Thoát chuyển & < > " ' thành thực thể HTML (&amp; &lt; &gt; &quot; &#39;). Dùng khi nhúng văn bản do người dùng tạo vào HTML để ngăn tấn công XSS.
Giải thoát chuyển các thực thể HTML (&amp; &lt; &gt; &quot; &#39;) về ký tự gốc. Dùng bộ phân tích HTML gốc của trình duyệt để giải mã đáng tin cậy mọi thực thể có tên và số.
XML: Thoát chuyển cùng 5 ký tự như HTML (& < > " ') thành thực thể an toàn cho XML. XML yêu cầu mọi ký tự & phải được thoát, kể cả trong giá trị thuộc tính.
Giải thoát chuyển các thực thể XML về ký tự gốc. Xử lý 5 thực thể XML định nghĩa sẵn cùng tham chiếu ký tự số. Logic giống giải thoát HTML.
JavaScript: Thoát chuyển các ký tự đặc biệt thành chuỗi escape JavaScript: \n \t \\ \" \' \xHH \uHHHH \u{H...}. Dùng khi tạo động chuỗi literal JavaScript.
Giải thoát chuyển các chuỗi escape JavaScript (\n \t \xHH \uHHHH v.v.) về lại ký tự thật. Xử lý mọi chuỗi escape ECMAScript chuẩn, kể cả escape điểm mã \u{H...}.
JSON: Thoát chuyển \" \\ và ký tự điều khiển thành chuỗi escape an toàn cho JSON theo RFC 8259. Dùng khi nhúng văn bản vào giá trị chuỗi JSON.
Giải thoát chuyển các chuỗi escape JSON (\" \\ \n \uXXXX v.v.) về lại ký tự thật. Tuân theo RFC 8259: chỉ giải mã các chuỗi escape JSON hợp lệ.
CSV: Thoát theo RFC 4180: bao các trường trong nháy kép nếu chúng chứa dấu phẩy, nháy kép hoặc ngắt dòng. Nháy kép bên trong được nhân đôi (" → "").
Giải thoát đảo ngược thoát CSV theo RFC 4180: bỏ nháy kép bao ngoài và khôi phục nháy kép bên trong ("" → "). Xử lý đúng các trường nhiều dòng và dấu phẩy trong nháy.
SQL: Thoát thoát dấu nháy đơn bằng cách nhân đôi (' → ''), cách này hoạt động trên mọi cơ sở dữ liệu lớn (MySQL, PostgreSQL, SQL Server, SQLite). Nó chỉ xử lý thoát chuỗi literal — nó không bảo vệ chống SQL injection trong truy vấn động.
Giải thoát chuyển dấu nháy đơn được nhân đôi ('' → ') về lại dấu nháy đơn. Đảo ngược cách thoát chuỗi literal SQL chuẩn.
Java: Thoát chuyển các ký tự đặc biệt thành chuỗi escape Java: \n \t \r \\ \" \' \uXXXX v.v. Dùng khi tạo chuỗi literal Java.
Giải thoát chuyển các chuỗi escape Java về lại ký tự thật. Xử lý mọi chuỗi escape Java chuẩn, kể cả escape Unicode \uXXXX.
.Net (C#): Thoát chuyển các ký tự đặc biệt thành chuỗi escape C#: \n \t \r \a \v \0 \\ \" \uXXXX \UHHHHHHHH v.v. Dùng khi tạo chuỗi literal C#.
Giải thoát chuyển các chuỗi escape C# về lại ký tự thật. Xử lý mọi chuỗi C# chuẩn, kể cả \UHHHHHHHH UTF-32 và các escape hex \xHH... độ dài thay đổi.
Việc thoát phụ thuộc vào ngữ cảnh

Cùng một văn bản cần các cách thoát khác nhau tùy nơi nó được đặt: thân HTML cần &lt; &amp; &gt;, một thuộc tính đặt trong nháy kép còn cần &quot;, một chuỗi JavaScript cần escape dấu gạch chéo ngược, và một URL cần mã hóa phần trăm. Thoát sai ngữ cảnh chính là cách chèn markup và XSS xảy ra.

Quy tắc ngón tay cái: thoát theo đích đến, không theo nguồn — quyết định dựa trên nơi dữ liệu sẽ đi tới, không phải nơi nó đến từ.