ตัวเข้ารหัสและถอดรหัส HTML Entity

แปลงอักขระพิเศษเป็นเอนทิตี HTML (ชื่อหรือตัวเลข) เพื่อป้องกันปัญหาการแสดงผลและการโจมตี XSS

ตัวเข้ารหัสและถอดรหัส HTML Entity

แปลงอักขระพิเศษเป็นเอนทิตี HTML (ชื่อหรือตัวเลข) เพื่อป้องกันปัญหาการแสดงผลและการโจมตี XSS

วิธีการทำงาน

1
Enter Query Details
Specify the parameters, location, or query data you want to look up.
2
Fetch or Validate Data
Retrieve or validate information securely within your session.
3
Inspect Detailed Results
Review schedules, reference figures, or comprehensive data tables.
ศูนย์ความรู้และแนวคิด

เครื่องมือแปลงรหัส HTML Entity ถอดรหัสอักขระพิเศษและป้องกันช่องโหว่ XSS

ในการเขียนเว็บ ภาษา HTML มีอักขระสงวนพิเศษ เช่น เครื่องหมายน้อยกว่า (<), มากกว่า (>), แอมเพอร์แซนด์ (&), และเครื่องหมายคำพูด ซึ่งหากแสดงผลตรงๆ เบราว์เซอร์อาจเข้าใจผิดว่าเป็นแท็กคำสั่ง นำไปสู่ข้อผิดพลาดในการแสดงผลหรือช่องโหว่ความปลอดภัย Cross-Site Scripting (XSS)

เครื่องมือนี้ช่วยแปลงอักขระพิเศษเหล่านี้ให้กลายเป็นรหัส HTML Entities (เช่น <, >, &) และช่วยถอดรหัส Entity ที่เป็นชื่อหรือตัวเลขกลับมาเป็นข้อความธรรมดาได้อย่างถูกต้อง รองรับอักขระ Unicode พิเศษครบถ้วน ประมวลผลในเบราว์เซอร์ 100%

สูตรและหลักการทางเทคนิค

การเข้ารหัส: [ <, >, &, ", ' ] ➔ [ &lt;, &gt;, &amp;, &quot;, &#39; ] ; การถอดรหัส: [ &name;, &#NN;, &#xHH; ] ➔ อักขระปกติ

แปลงอักขระสงวนของมาร์กอัปและสัญลักษณ์พิเศษเป็นชุดรหัสเอนทิตีมาตรฐาน และถอดรหัสเอนทิตีที่มีชื่อและรหัสตัวเลขกลับเป็นข้อความ UTF-8 ดั้งเดิม

ข้อแนะนำและวิธีปฏิบัติที่ถูกต้อง

  • แปลงอักขระสงวน 5 ตัวหลักเสมอเมื่อแสดงผลข้อมูลจากผู้ใช้: ได้แก่ &, <, >, ", และ ' เพื่อป้องกันไม่ให้โค้ดของผู้ใช้ถูกตีความเป็นคำสั่ง HTML/JavaScript
  • อย่าทำการ Encode ซ้ำซ้อน (Double Encoding): ระวังการแปลงเครื่องหมาย & ซ้ำสองรอบจนกลายเป็น &amp; ซึ่งจะทำให้การแสดงผลบนหน้าจอผิดเพี้ยน
  • ใช้การตั้งค่า Charset เป็น UTF-8 ในหน้าเว็บ: การกำหนด <meta charset="UTF-8"> ช่วยให้แสดงผลอักขระภาษาไทยและสัญลักษณ์สากลได้โดยตรงโดยไม่ต้องแปลงเป็น Entity ทั้งหมด
  • ใช้ฟังก์ชันที่ปลอดภัยของเบราว์เซอร์ในการถอดรหัส: หลีกเลี่ยงการใช้ innerHTML ในการถอดรหัสข้อมูลที่ไม่น่าเชื่อถือ ควรใช้ textContent หรือ DOMParser เพื่อป้องกันการรันสคริปต์แฝง

คำถามที่พบบ่อย (FAQ)

อักขระ HTML สงวนที่จำเป็นต้องแปลงรหัสมีอะไรบ้าง?
มี 5 ตัวหลักที่สำคัญที่สุด ได้แก่ & (&), < (<), > (>), " ("), และ ' (' หรือ ')
Named Entity และ Numeric Entity แตกต่างกันอย่างไร?
Named Entity ใช้อักษรชื่อย่อที่อ่านเข้าใจง่าย เช่น © สำหรับเครื่องหมายลิขสิทธิ์ ส่วน Numeric Entity อ้างอิงตามรหัส Unicode เช่น © (ฐานสิบ) หรือ © (ฐานสิบหก)
การแปลง HTML Entity เพียงพอต่อการป้องกัน XSS หรือไม่?
การแปลง Entity ช่วยป้องกันการแทรกโค้ดในบริบทของ HTML Body ได้ดี แต่หากข้อมูลถูกใส่ในบริบทของ JavaScript, Attribute, หรือ URL จะต้องมีการทำ Context-aware Escaping เพิ่มเติม
ข้อความภาษาไทยจำเป็นต้องแปลงเป็น HTML Entity หรือไม่?
ไม่จำเป็น หากหน้าเว็บมีการกำหนด <meta charset="utf-8"> ภาษาไทยสามารถพิมพ์และแสดงผลเป็นตัวอักษรปกติได้ทันทีโดยไม่ต้องแปลงเป็นรหัสตัวเลข