สัปดาห์ที่ 12: Authentication และ Security

สัปดาห์นี้เรียนรู้การออกแบบระบบยืนยันตัวตนและความปลอดภัยของเว็บแอป ตั้งแต่ Session-based Authentication, Token-based Authentication, JWT, OAuth 2.0/OIDC, ภัยคุกคามอย่าง CORS, CSRF, XSS, การ Hash Password ด้วย bcrypt และการป้องกันข้อมูลระหว่างทางด้วย HTTPS/TLS

ผลลัพธ์การเรียนรู้

  1. เปรียบเทียบ Session-based และ Token-based Authentication ได้
  2. สร้างและตรวจสอบ JWT พร้อมแนวคิด Access Token และ Refresh Token ได้
  3. อธิบาย OAuth 2.0 และ OpenID Connect เบื้องต้นได้
  4. ระบุความเสี่ยงจาก CORS, CSRF, XSS และ SQL Injection พร้อมแนวทางป้องกันได้
  5. ใช้ bcrypt เพื่อ Hash และตรวจสอบ Password ได้
  6. อธิบายการทำงานของ HTTPS, TLS Certificate, HSTS และ Mixed Content ได้

บทเรียนย่อย

ลำดับ หัวข้อ ไฟล์บทเรียน สไลด์
1 การพิสูจน์ตัวตน: Session-based vs Token-based webprogram-12-auth-security-01-session-token-authentication.md webprogram-12-auth-security-01-session-token-authentication-slides.mdx
2 JWT: การสร้าง, ตรวจสอบ, Refresh Token webprogram-12-auth-security-02-jwt-refresh-token.md webprogram-12-auth-security-02-jwt-refresh-token-slides.mdx
3 OAuth 2.0 และ OpenID Connect เบื้องต้น webprogram-12-auth-security-03-oauth-openid-connect.md webprogram-12-auth-security-03-oauth-openid-connect-slides.mdx
4 CORS, CSRF, XSS: ภัยคุกคามและการป้องกัน webprogram-12-auth-security-04-cors-csrf-xss.md webprogram-12-auth-security-04-cors-csrf-xss-slides.mdx
5 Password Hashing ด้วย bcrypt webprogram-12-auth-security-05-password-hashing-bcrypt.md webprogram-12-auth-security-05-password-hashing-bcrypt-slides.mdx
6 HTTPS และ SSL/TLS Certificate webprogram-12-auth-security-06-https-tls-certificate.md webprogram-12-auth-security-06-https-tls-certificate-slides.mdx

ลำดับการเรียน

  1. เข้าใจภาพรวม Authentication ก่อนเลือก session หรือ token
  2. ทดลองสร้าง JWT และออกแบบ refresh flow
  3. ศึกษา OAuth/OIDC สำหรับ login ผ่านผู้ให้บริการภายนอก
  4. วิเคราะห์ภัยคุกคามและวิธีป้องกันฝั่งเว็บ
  5. Hash password อย่างปลอดภัย
  6. ปิดท้ายด้วย HTTPS และการป้องกันข้อมูลระหว่างทาง

แบบทดสอบหลังเรียนภาพรวม

  1. Authentication และ Authorization ต่างกันอย่างไร
  2. Session-based และ Token-based เหมาะกับระบบต่างกันอย่างไร
  3. JWT ประกอบด้วยส่วนใดบ้าง
  4. OAuth 2.0 ต่างจาก OpenID Connect อย่างไร
  5. XSS และ CSRF โจมตีคนละจุดอย่างไร
  6. เหตุใดจึงควรใช้ bcrypt แทน MD5/SHA1

กลับรายวิชา