หากคุณต้องการรักษาความปลอดภัยแอปพลิเคชันของคุณคุณควรเริ่มต้นอย่างแน่นอนด้วยการใช้ HTTPS แทน HTTPสิ่งนี้จะช่วยสร้างความมั่นใจในการสร้างช่องทางที่ปลอดภัยระหว่างคุณกับผู้ใช้ที่จะป้องกันไม่ให้ดมข้อมูลที่ส่งกลับไปยังผู้ใช้ แลกเปลี่ยนเป็นความลับ
คุณสามารถใช้ JWTs (JSON Web Tokens) เพื่อรักษาความปลอดภัย RESTful APIsซึ่งมีประโยชน์มากมายเมื่อเทียบกับเซสชันฝั่งเซิร์ฟเวอร์ประโยชน์ส่วนใหญ่:
1- ปรับขนาดได้มากขึ้นเนื่องจากเซิร์ฟเวอร์ API ของคุณจะไม่ต้องรักษาเซสชันสำหรับผู้ใช้แต่ละคน (ซึ่งอาจเป็นภาระใหญ่เมื่อคุณมีหลายเซสชัน)
2- เจดับบลิวทีมีอยู่ในตัวเอง & มีการเรียกร้องที่กำหนดบทบาทของผู้ใช้เช่น & สิ่งที่เขาสามารถเข้าถึงและออก ณ วันที่ & วันหมดอายุ (หลังจากที่เจดับบลิวทีจะไม่ถูกต้อง)
3- ง่ายต่อการจัดการข้าม load balancer & หากคุณมีเซิร์ฟเวอร์ API หลายตัวเนื่องจากคุณไม่ต้องแชร์ข้อมูลเซสชันหรือกำหนดค่าเซิร์ฟเวอร์เพื่อกำหนดเส้นทางเซสชันไปยังเซิร์ฟเวอร์เดียวกันเมื่อใดก็ตามที่คำขอที่มี JWT เข้าชมเซิร์ฟเวอร์ใด ๆ & ได้รับอนุญาต
4- ลดแรงกดดันต่อฐานข้อมูลของคุณรวมถึงคุณไม่จำเป็นต้องจัดเก็บและรับรหัสเซสชันและข้อมูลสำหรับคำขอแต่ละครั้ง
5- คุณไม่สามารถดัดแปลง JWT ได้หากคุณใช้รหัสที่รัดกุมเพื่อลงชื่อ JWT ดังนั้นคุณสามารถเชื่อถือข้อเรียกร้องใน JWT ที่ส่งมาพร้อมกับคำขอโดยไม่ต้องตรวจสอบเซสชันผู้ใช้และไม่ว่าเขาจะได้รับอนุญาตหรือไม่ คุณสามารถตรวจสอบ JWT จากนั้นคุณพร้อมที่จะรู้ว่าใครและสิ่งที่ผู้ใช้นี้สามารถทำได้
ห้องสมุดหลายแห่งมีวิธีง่าย ๆ ในการสร้างและตรวจสอบ JWT ในภาษาการเขียนโปรแกรมส่วนใหญ่ตัวอย่างเช่น: ใน node.js หนึ่งในความนิยมมากที่สุดคือjsonwebtoken
เนื่องจาก REST APIs โดยทั่วไปมีจุดประสงค์เพื่อให้เซิร์ฟเวอร์ไร้สถานะดังนั้นJWTจึงเข้ากันได้กับแนวคิดดังกล่าวมากขึ้นเนื่องจากแต่ละคำขอจะถูกส่งด้วยโทเค็นการอนุญาตที่มีอยู่ในตัวเอง(JWT)โดยเซิร์ฟเวอร์ไม่ต้องติดตามเซสชันของผู้ใช้ เซิร์ฟเวอร์แจ้งว่าผู้ใช้และบทบาทของเขาจำได้อย่างไรเซสชันก็ถูกใช้อย่างกว้างขวาง & มีข้อดีของพวกเขาซึ่งคุณสามารถค้นหาได้หากคุณต้องการ
สิ่งสำคัญที่ควรทราบคือคุณต้องส่งมอบ JWT ให้กับลูกค้าอย่างปลอดภัยโดยใช้ HTTPS และบันทึกไว้ในที่ปลอดภัย (ตัวอย่างเช่นในที่จัดเก็บในตัวเครื่อง)
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ JWT ได้จากลิงค์นี้