ตัวเข้ารหัส / ถอดรหัส HTML
แสดงอินพุตผู้ใช้อย่างปลอดภัยโดยแปลง < เป็น < และ & เป็น & ถอดรหัส entity เมื่ออ่านชิ้น HTML ที่เก็บไว้กลับเป็นข้อความธรรมดาสำหรับทำดัชนีค้นหา ทำงานในเครื่องสำหรับดีบักเทมเพลตและ CMS
วิธีเข้ารหัสหรือถอดรหัส HTML
1. เลือกโหมดเข้ารหัส (หลีก) หรือถอดรหัส
2. วาง HTML หรือข้อความธรรมดา
3. คัดลอกเอาต์พุตที่หลีกแล้วสำหรับเทมเพลตหรือแอตทริบิวต์
4. ถอดรหัสเพื่ออ่านการส่งออก XML/HTML ที่เต็มไปด้วย entity
ตัวอย่าง HTML entity
แสดงความคิดเห็นผู้ใช้อย่างปลอดภัย
อินพุต <script>alert(1)</script> กลายเป็นข้อความไร้อันตรายเมื่อเข้ารหัสเพื่อแทรกผ่านโหนดข้อความอย่างปลอดภัยต่อ innerHTML
อะพอสทรอฟีในแอตทริบิวต์
O'Reilly ในแอตทริบิวต์ title เข้ารหัสเครื่องหมายคำพูดเป็น ' หรือ ' ตามบริบท
ถอดรหัสการส่งออก CMS
คำอธิบายสินค้า & copy; ถอดรหัสเป็น & สำหรับแก้ไข
เมื่อไหร่ควรเข้ารหัส HTML
• เมื่อแทรกข้อความที่ไม่น่าเชื่อถือในเทมเพลต HTML
• เมื่อดีบักการเข้ารหัสซ้ำในเทมเพลตอีเมล
• เมื่อเตรียมชิ้น HTML ที่สร้างจาก Markdown
บริบทสำคัญ
การหลีก HTML สำหรับค่าแอตทริบิวต์อาจต่างจากโหนดข้อความ — เครื่องหมายคำพูดสำคัญในแอตทริบิวต์ ชีตโกง OWASP ระบุบริบท JS และ CSS ด้วย
คำถามที่พบบ่อย
entity แบบมีชื่อกับตัวเลข?
& กับ & — เทียบเท่าสำหรับอักขระทั่วไป อีโมจิอาจต้องรูปแบบตัวเลข 😀
เข้ารหัสทั้งเอกสาร HTML?
การเข้ารหัสทั้งเอกสารแสดงแท็กตามตัวอักษร — โดยปกติเข้ารหัสเฉพาะข้อมูลผู้ใช้
ป้องกัน XSS?
การเข้ารหัสโหนดข้อความช่วย อย่าต่อ HTML ผู้ใช้ดิบ ส่วนหัว CSP เพิ่มการป้องกัน
อักขระ UTF-8?
มักคงเป็น UTF-8 ใน HTML5 สมัยใหม่ entity เป็นทางเลือกสำหรับ non-ASCII
ในเครื่อง?
ใช่