ในยุคดิจิทัลที่เว็บไซต์และแอปพลิเคชันออนไลน์ได้รับความนิยมมากขึ้น ภัยคุกคามทางไซเบอร์ ก็เพิ่มขึ้นตามมา หนึ่งในรูปแบบการโจมตีที่อันตรายและพบได้บ่อยคือ Cross-Site Request Forgery (CSRF) หรือ การปลอมคำขอจากฝั่งผู้ใช้ ซึ่งอาจทำให้เหยื่อเผลอทำสิ่งที่ไม่ตั้งใจบนเว็บไซต์โดยที่ไม่รู้ตัว
บทความนี้จะพาไปรู้จักกับ CSRF คืออะไร? ทำงานอย่างไร? อันตรายแค่ไหน? และวิธีป้องกัน เพื่อความปลอดภัยในการใช้งานเว็บไซต์ของคุณ
หัวข้อ
CSRF (Cross-Site Request Forgery) คืออะไร?
CSRF เป็นการโจมตีรูปแบบหนึ่งที่แฮ็กเกอร์หลอกให้ผู้ใช้ ส่งคำขอ (Request) ไปยังเว็บไซต์หรือแอปพลิเคชันที่ตนเองกำลังล็อกอินอยู่ โดยไม่รู้ตัว ส่งผลให้เกิดการเปลี่ยนแปลงข้อมูลหรือทำธุรกรรมบางอย่างโดยที่เจ้าของบัญชีไม่ได้ตั้งใจ เช่น
- โอนเงินจากบัญชีธนาคาร
- เปลี่ยนรหัสผ่าน
- ลบข้อมูล
- ซื้อสินค้าออนไลน์
ตัวอย่างง่ายๆ : หากคุณล็อกอิน Facebook ค้างไว้ แล้วไปคลิกลิงก์ในอีเมลหลอกลวง แฮ็กเกอร์อาจฝังคำสั่งให้ Facebook โพสต์ข้อความหรือส่งข้อความในนามของคุณทันที
CSRF ทำงานอย่างไร?
1. เหยื่ออยู่ในสถานะล็อกอิน (Authenticated Session)
ผู้ใช้กำลังล็อกอินเข้าสู่เว็บไซต์เป้าหมาย เช่น ธนาคาร, Facebook หรือระบบหลังบ้านอื่น ๆ
2. ผู้โจมตีสร้างลิงก์หรือแบบฟอร์มปลอม
ตัวอย่างเช่น:
<img src="https://bank.com/transfer?to=hacker&amount=5000"/>3. เหยื่อกดลิงก์หรือเปิดหน้าเว็บที่ฝังโค้ด
คำขอถูกส่งไปยังเว็บไซต์เป้าหมายด้วยสิทธิ์ของเหยื่อทันที
4. เว็บไซต์เป้าหมายประมวลผลคำขอ
ถ้าเว็บไซต์ไม่มีระบบป้องกัน CSRF คำสั่งปลอมจะถูกประมวลผลสำเร็จ
ความเสียหายจาก CSRF
- ข้อมูลส่วนตัวรั่วไหล
- สูญเสียเงินในบัญชี
- ถูกยึดบัญชีผู้ใช้ (Account Takeover)
- ถูกใช้เป็นเครื่องมือโจมตีผู้อื่น
ตัวอย่างเว็บไซต์ที่เสี่ยงต่อ CSRF
- ระบบธนาคารออนไลน์
- E-commerce และ Marketplace
- Social Media เช่น Facebook, Instagram
- ระบบ Back Office, Admin Panel
วิธีป้องกัน CSRF
1. ใช้ CSRF Token (Best Practice)
- ทุกคำขอที่เปลี่ยนแปลงข้อมูลต้องมี Token เฉพาะที่สร้างขึ้นแบบสุ่ม (Random)
- ตัวอย่าง Framework ที่รองรับ: Laravel, Django, Spring
2. ตรวจสอบ Referer / Origin Header
- ตรวจสอบว่า Request มาจากโดเมนของตัวเองหรือไม่
3. ใช้ SameSite Cookie Attribute
- ตั้งค่า SameSite=Strict หรือ Lax เพื่อลดความเสี่ยงจาก CSRF
4. ตั้งเวลาหมดอายุของ Session และ Logout อัตโนมัติ
- ลดโอกาสที่ผู้โจมตีใช้ Session ที่เปิดค้างไว้
5. หลีกเลี่ยงการใช้ GET Method กับคำสั่งสำคัญ
- ใช้ POST สำหรับคำสั่งที่มีผลต่อข้อมูล เช่น การโอนเงิน, เปลี่ยนรหัสผ่าน
ตัวอย่าง CSRF Token
<form method="POST" action="/change-password">
<input type="hidden" name="csrf_token" value="abc123xyz">
<input type="password" name="new_password">
<button type="submit">Change Password</button>
</form>ฝั่ง Server จะตรวจสอบว่า csrf_token ถูกต้องก่อนประมวลผลคำขอ
สรุป
Cross-Site Request Forgery (CSRF) เป็นการโจมตีที่แฮ็กเกอร์อาศัยการปลอมคำขอจากผู้ใช้เพื่อให้เว็บเป้าหมายทำตามคำสั่ง โดยที่เจ้าของบัญชีไม่รู้ตัว อาจนำไปสู่ความเสียหายร้ายแรงทั้งด้านข้อมูลและการเงิน
วิธีป้องกันที่ดีที่สุดคือ ใช้ CSRF Token และตั้งค่า SameSite Cookie รวมถึงหลีกเลี่ยงการใช้ GET กับคำสั่งสำคัญ
หากคุณเป็นเจ้าของเว็บไซต์หรือเป็นนักพัฒนา อย่าลืมใส่ใจป้องกัน CSRF เพื่อรักษาความปลอดภัยของผู้ใช้งานทุกคน!
อย่ารอช้า! ให้ KNmasters ดูแลธุรกิจของคุณวันนี้!
หากคุณต้องการข้อมูลเพิ่มเติมหรืออยากเริ่มใช้บริการกับ KNmasters เราพร้อมช่วยให้ธุรกิจของคุณเติบโตด้วยกลยุทธ์การตลาดออนไลน์ครบวงจร
- Facebook: KNmasters
- LINE: KNmasters
- Youtube: KNmasters
- Instagram: knmasters.official
- Tiktok: KNmasters.official
- Twitter: KNmasters Official
- เว็บไซต์: www.knmasters.com
- แผนที่: KNmasters



