Session Authentication

   อัปเดตล่าสุด March 7, 2024

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 อย่างไม่ระมัดระวัง