Web Security

Cookie ที่ปลอดภัย: Secure, HttpOnly และ SameSite

A
admin
17 ธันวาคม 2568 0 ครั้ง
แชร์:

ทำไมแอตทริบิวต์คุกกี้จึงสำคัญ

คุกกี้เซสชันคือกุญแจเข้าสู่บัญชีผู้ใช้ ถ้าถูกขโมยผ่าน XSS หรือส่งผ่าน HTTP เปล่า ผู้โจมตีจะสวมรอยได้ แนวทางรวมอยู่ที่ OWASP Session Management Cheat Sheet และ MDN Set-Cookie

Secure

ส่งคุกกี้เฉพาะบน HTTPS ลดการรั่วบนเครือข่ายเปิด เว็บที่บังคับ HTTPS อยู่แล้วควรติด Secure ทุกคุกกี้ยืนยันตัวตน

HttpOnly

ห้าม JavaScript อ่านคุกกี้ผ่าน document.cookie ช่วยลดการขโมยเซสชันเมื่อมี XSS แต่ไม่แทนที่การแก้ XSS

SameSite

SameSite จำกัดการส่งคุกกี้ไปกับคำขอข้ามไซต์

  • Strict ไม่ส่งเมื่อมาจากไซต์อื่น
  • Lax ส่งเมื่อเป็น top-level navigation แบบ GET (ค่าเริ่มต้นใน Chrome)
  • None ส่งข้ามไซต์ได้ ต้องคู่กับ Secure ใช้เมื่อมีกรณีฝังข้ามไซต์ที่จำเป็นจริง

รายละเอียดอยู่ที่ MDN SameSite

คำนำหน้าชื่อคุกกี้

__Host- ตามแนว RFC 6265bis / MDN บังคับให้มี Secure, ไม่มี Domain, และ Path=/ ลดความเสี่ยงคุกกี้ถูกตั้งจากซับโดเมนอื่น

code
Set-Cookie: __Host-session=...; Secure; HttpOnly; Path=/; SameSite=Lax

สรุป

คุกกี้เซสชันควรมีอย่างน้อย Secure, HttpOnly และ SameSite ที่ตั้งใจเลือก ไม่ใช้ SameSite=None โดยไม่จำเป็น

แหล่งอ้างอิง

หมวดหมู่: Web Security