Session Authentication คืออะไร?
Session Authentication คือ รูปแบบในการรักษาความปลอดภัยที่นิยมใช้บนเว็บไซต์และแอปพลิเคชันต่าง ๆ โดย Session Authentication จะอาศัยเซสชัน (Session) ซึ่งเป็นช่วงเวลาการทำงานของผู้ใช้บนระบบ โดยระบบจะออก Session ID ให้กับผู้ใช้ที่ผ่านการยืนยันตัวตนสำเร็จ และจะเก็บ Session ID ไว้บนฝั่งเซิร์ฟเวอร์

Session Authen (Image source: blogs.halodoc.io)
ขั้นตอนการทำงานของ Session
1. ผู้ใช้กรอกข้อมูลเข้าสู่ระบบด้วย Username และ Password
2. ระบบตรวจสอบข้อมูล
- หากถูกต้อง ระบบจะออก Session ID ให้ผู้ใช้
- หากผิดพลาด ระบบจะแจ้งเตือนให้ผู้ใช้กรอกข้อมูลใหม่
3. ระบบบันทึก Session ID
- บนฝั่งเซิร์ฟเวอร์: มักใช้ Session Storage
- บนเบราว์เซอร์ของผู้ใช้: มักใช้ Cookie
4. ผู้ใช้ใช้งานบนระบบ
- ในทุกๆ คำขอ (Request) ที่ส่งไปยังเซิร์ฟเวอร์
- เบราว์เซอร์จะแนบ Session ID ไปด้วย
5. เซิร์ฟเวอร์ตรวจสอบ Session ID
- หากถูกต้อง อนุญาตให้ผู้ใช้ดำเนินการต่อไป
- หากไม่ถูกต้อง อาจเป็นเพราะหมดเวลา (Timeout) หรือผู้ใช้ไม่ได้รับอนุญาต
- ระบบอาจนำผู้ใช้ไปยังหน้าเข้าสู่ระบบใหม่อีกครั้ง
ข้อดีของ Session
- ง่ายต่อการใช้งาน
- เหมาะสำหรับระบบที่ต้องการควบคุมการเข้าถึงแบบต่อเนื่อง
ข้อเสียของ Session
- เซิร์ฟเวอร์ต้องรับภาระในการจัดเก็บข้อมูลเซสชัน
- อาจมีช่องโหว่ด้านความปลอดภัยหากใช้ Cookie อย่างไม่ระมัดระวัง