ทีมพัฒนาได้รับข้อกำหนดเว็บที่ต้องปลอดภัย รองรับการขยาย และบำรุงรักษาได้ จึงพิจารณาว่า ในเว็บแอปพลิเคชัน Single Page Application (SPA) ที่ใช้ JWT (JSON Web Token) สำหรับการยืนยันตัวตน ข้อสงสัยเกี่ยวกับการจัดเก็บ Token ในฝั่ง Client คืออะไร
กควรจัดเก็บใน LocalStorage เพื่อให้ข้อมูล Persist ระหว่าง Session
ขควรจัดเก็บใน SessionStorage เพื่อให้ข้อมูลลบออกเมื่อปิดเบราว์เซอร์
คควรจัดเก็บใน Memory หรือใช้ httpOnly Cookie เพื่อลดความเสี่ยงจาก XSS Attack
งควรจัดเก็บใน Plain Text ใน HTML Attributes
เฉลยอธิบาย
JWT ควรจัดเก็บใน Memory (หากเป็นไปได้) หรือใช้ httpOnly Cookie ซึ่งไม่สามารถเข้าถึงจาก JavaScript ป้องกันจาก XSS Attack ตัวเลือก A (LocalStorage) เสี่ยงต่อ XSS เพราะสามารถเข้าถึงจาก JavaScript ตัวเลือก C ผิดเพราะ SessionStorage ก็เสี่ยง XSS เหมือนกัน ตัวเลือก D ผิดเพราะเป็นการเปิดช่องให้โจมตี