แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการโทเค็น JWT ทางฝั่งเซิร์ฟเวอร์ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ (เกิดจากหัวข้อนี้ตั้งแต่นี้เป็นจริงคำถามที่เฉพาะเจาะจงของตัวเองและไม่ให้ NodeJS ฯลฯ ) ฉันกำลังใช้เซิร์ฟเวอร์ REST API ด้วยการพิสูจน์ตัวตนและฉันได้ใช้การจัดการโทเค็น JWT สำเร็จแล้วเพื่อให้ผู้ใช้สามารถเข้าสู่ระบบผ่านปลายทาง / login ด้วยชื่อผู้ใช้ / รหัสผ่านซึ่งโทเค็น JWT ถูกสร้างขึ้นจากความลับของเซิร์ฟเวอร์และส่งกลับไปที่ ลูกค้า. จากนั้นโทเค็นจะถูกส่งผ่านจากไคลเอนต์ไปยังเซิร์ฟเวอร์ในแต่ละคำขอ API ที่พิสูจน์ตัวตนซึ่งใช้ความลับของเซิร์ฟเวอร์เพื่อตรวจสอบโทเค็น อย่างไรก็ตามฉันพยายามทำความเข้าใจแนวทางปฏิบัติที่ดีที่สุดว่าควรตรวจสอบโทเค็นอย่างไรและเพียงใดเพื่อสร้างระบบที่ปลอดภัยอย่างแท้จริง สิ่งที่ควรเกี่ยวข้องในการ "ตรวจสอบ" โทเค็นหรือไม่ เพียงพอหรือไม่ที่สามารถตรวจสอบลายเซ็นโดยใช้ความลับของเซิร์ฟเวอร์ได้หรือฉันควรตรวจสอบโทเค็นและ / หรือเพย์โหลดโทเค็นกับข้อมูลบางอย่างที่เก็บไว้ในเซิร์ฟเวอร์ ระบบตรวจสอบความถูกต้องโดยใช้โทเค็นจะปลอดภัยพอ ๆ กับการส่งชื่อผู้ใช้ / รหัสผ่านในแต่ละคำขอโดยมีเงื่อนไขว่าจะได้รับโทเค็นเท่ากันหรือยากกว่าการได้รับรหัสผ่านของผู้ใช้ อย่างไรก็ตามในตัวอย่างที่ฉันเห็นข้อมูลเดียวที่จำเป็นในการสร้างโทเค็นคือชื่อผู้ใช้และความลับฝั่งเซิร์ฟเวอร์ นี่ไม่ได้หมายความว่าสมมติว่าผู้ใช้ที่เป็นอันตรายได้รับความรู้เกี่ยวกับความลับของเซิร์ฟเวอร์เป็นเวลาหนึ่งนาทีตอนนี้เขาสามารถสร้างโทเค็นในนามของผู้ใช้รายใดก็ได้ดังนั้นการเข้าถึงไม่เพียง แต่ให้กับผู้ใช้ที่ได้รับรายเดียวตามความเป็นจริงถ้ารหัสผ่านคือ ได้รับ แต่ในความเป็นจริงสำหรับบัญชีผู้ใช้ทั้งหมด ? สิ่งนี้นำฉันไปสู่คำถาม: 1) การตรวจสอบโทเค็น …