Mã hóa/Giải mã HTML
Mã hóa/Giải mã HTML
Mã hóa/Giải mã HTML: Hỗ trợ thoát và bỏ thoát thực thể HTML, xử lý ký tự đặc biệt và thẻ. Tự động phát hiện định dạng thực thể được đặt tên và số, ngăn chặn tấn công XSS, phù hợp cho hiển thị đầu vào người dùng, ví dụ mã và xử lý nội dung an toàn.
Bắt đầu nhanh
Tình huống sử dụng phổ biến
Bình luận người dùng
escape nội dung do người dùng gửi để ngăn tấn công XSS.
Bài viết blog
hiển thị ví dụ mã HTML trong bài viết.
Bài viết diễn đàn
hiển thị an toàn nội dung do người dùng tạo.
Tin nhắn chat
ngăn mã độc lan truyền qua tính năng trò chuyện.
Dữ liệu form
xử lý và hiển thị dữ liệu gửi từ form.
Hiển thị mã
trình bày đoạn mã HTML/JavaScript trên trang web.
Tình huống bổ sung
HTML entities, escape HTML và unescape HTML cũng có thể được xử lý trong cùng một luồng để bạn kiểm tra kết quả nhanh hơn trước khi sao chép hoặc xuất ra.
Quy tắc escape & entity
Gợi ý sử dụng
Giới hạn & khả năng tương thích
Quản lý phiên
Câu hỏi thường gặp
XSS (Cross-Site Scripting) là kiểu tấn công mà kẻ xấu tiêm script độc hại vào trang web để đánh cắp thông tin hoặc thực hiện hành vi trái phép. Escape HTML là lớp phòng thủ cơ bản chống XSS.
Cần escape khi hiển thị bất kỳ dữ liệu người dùng nào, bao gồm bình luận, tin nhắn, dữ liệu form… Bất kỳ nội dung nào có thể chứa thẻ HTML đều nên được escape.
Cả hai đều biểu diễn ký tự < (less‑than). &lt; là entity tên (lt = less‑than); </< là entity dạng số/hex. Trong HTML hiện đại, chúng hoạt động tương đương: dùng &lt; để dễ đọc; dùng </< khi không hỗ trợ entity tên hoặc cần biểu diễn ký tự bất kỳ/đa ngôn ngữ. Luôn giữ dấu chấm phẩy (ví dụ &lt;); nếu bỏ, parser có thể dính với chữ sau, như “&notin” được đọc thành “&not;”+“in” → “¬in”.
Không. Escape HTML chỉ hiệu quả trong ngữ cảnh HTML. JavaScript, CSS và URL cần những kỹ thuật escape riêng.
Do nội dung bị escape hai lần: lần đầu < → &lt;, lần sau & → &amp;, dẫn đến &amp;lt;. Hãy tránh escape lặp lại.
Hãy dùng sanitize (không chỉ escape): dùng allow‑list thẻ/thuộc tính an toàn và lọc protocol. Chỉ giữ lại p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3; với a chỉ cho href/title/target (http/https/mailto/tel), với img chỉ src/alt; loại bỏ style và toàn bộ on*. Nên dùng DOMPurify/sanitize‑html; sanitize phía server nếu có thể; không bao giờ đưa nội dung không tin cậy vào innerHTML/dangerouslySetInnerHTML; hãy dùng textContent cho văn bản thuần.