Công cụ này làm gì
Hai chiều. Mã hóa biến văn bản thành tham chiếu ký tự HTML: chỉ năm ký tự dành riêng (& < > " '), các ký tự đó cộng mọi ký tự ngoài ASCII, hoặc mọi ký tự. Tham chiếu có thể viết bằng tên khi có (é), thập phân (é) hoặc thập lục phân (é). Giải mã đổi tham chiếu về ký tự bằng bảng đủ 2.125 tên HTML5 và đúng các quy tắc trình duyệt dùng. Bên dưới kết quả, cùng văn bản được hiển thị dạng chuỗi thoát JavaScript (\u00E9, \u{1F600}) và chuỗi thoát CSS cho thuộc tính content.
Khi nào thật sự cần entity
Với trang UTF-8 (mặc định của web hiện đại), mọi ký tự đều viết trực tiếp được: é, —, 😀 không cần entity, tiếng Việt có dấu cũng vậy. Thứ luôn phải thoát là ký tự có nghĩa trong mã HTML: & thành &, < thành < trong nội dung trang, " thành " trong giá trị thuộc tính đặt trong nháy kép, ' thành ' trong nháy đơn. Đó là việc phạm vi mặc định làm.
Giải mã như trình duyệt
- Tên khớp dài nhất thắng:
∉ là ∉, còn ¬it; (không phải tên) giải mã ¬ và giữ it;. - 106 tên cũ từ HTML 4 như
&, ©, é vẫn chạy khi thiếu dấu chấm phẩy; tên mới như &hellip thì không. - Trong giá trị thuộc tính, tên cũ thiếu dấu chấm phẩy được giữ nguyên nếu theo sau là
= hoặc chữ, số, để URL như ?a=1©=2 không bị hỏng. �, surrogate và giá trị trên U+10FFFF thành U+FFFD; € đến Ÿ thành ký tự Windows-1252 (– là gạch ngang ngắn).
Tên lạ như &foo; được giữ nguyên và liệt kê ra. Bộ giải mã được đối chiếu với một bản cài đặt độc lập của đặc tả HTML trên hàng nghìn đầu vào.
Thoát ký tự không phải là làm sạch
Thoát các ký tự dành riêng là cách đưa văn bản không tin cậy vào HTML an toàn, và là lớp phòng thủ chính trước XSS. Nhưng nó chỉ bảo vệ nội dung trang và giá trị thuộc tính có nháy; trong <script>, thuộc tính style, onclick hay URL trong href cần quy tắc khác. Đọc thêm HTML entity, UTF-8 và khi nào thoát ký tự chặn được XSS, hoặc dùng công cụ mã hóa URL cho URL.