ขอโทษนะ @MarkAmery และ Eugene แต่ไม่ถูกต้อง
แอป js + html (ไคลเอนต์) ของคุณที่ทำงานในเบราว์เซอร์สามารถตั้งค่าเพื่อยกเว้นการเรียกโดยตรงที่ไม่ได้รับอนุญาตไปยัง API ดังนี้:
- ขั้นตอนแรก: ตั้งค่า API เพื่อต้องการการตรวจสอบสิทธิ์ ลูกค้าต้องตรวจสอบตัวเองผ่านทางเซิร์ฟเวอร์ (หรือบางเซิร์ฟเวอร์ความปลอดภัยอื่น ๆ )เช่นขอให้ผู้ใช้ของมนุษย์ที่จะให้รหัสผ่านถูกต้อง
ก่อนการตรวจสอบสิทธิ์จะไม่ยอมรับการเรียกไปยัง API
ในระหว่างการตรวจสอบสิทธิ์ "โทเค็น" จะถูกส่งกลับ
หลังจากตรวจสอบสิทธิ์แล้วเฉพาะการเรียก API ที่มี "โทเค็น" เท่านั้นที่จะได้รับการยอมรับ
แน่นอนในขั้นตอนนี้เฉพาะผู้ใช้ที่ได้รับอนุญาตซึ่งมีรหัสผ่านเท่านั้นที่สามารถเข้าถึง API ได้แม้ว่าพวกเขาจะเป็นโปรแกรมเมอร์ที่แก้ไขข้อบกพร่องของแอป แต่ก็สามารถเข้าถึงได้โดยตรงเพื่อการทดสอบ
- ขั้นตอนที่สอง: ตั้งค่า API ความปลอดภัยเพิ่มเติมซึ่งจะถูกเรียกใช้ภายในระยะเวลาสั้น ๆ หลังจากที่ไคลเอนต์ js + html app ถูกร้องขอจากเซิร์ฟเวอร์ในตอนแรก "โทรกลับ" นี้จะบอกเซิร์ฟเวอร์ว่าดาวน์โหลดไคลเอนต์สำเร็จแล้ว จำกัด การเรียก REST API ของคุณให้ทำงานเฉพาะในกรณีที่ไคลเอ็นต์ถูกร้องขอเมื่อเร็ว ๆ นี้และประสบความสำเร็จ
ตอนนี้เพื่อที่จะใช้ API ของคุณพวกเขาต้องดาวน์โหลดไคลเอนต์ก่อนและเรียกใช้งานจริงในเบราว์เซอร์ หลังจากได้รับการติดต่อกลับสำเร็จแล้วจากนั้นผู้ใช้จะเข้ามาภายในระยะเวลาสั้น ๆ API จะยอมรับการโทร
คุณจึงไม่ต้องกังวลว่านี่อาจเป็นผู้ใช้ที่ไม่ได้รับอนุญาตโดยไม่มีข้อมูลรับรอง
(ชื่อคำถาม 'ฉันจะรักษาความปลอดภัยการเรียก REST API ได้อย่างไร' และจากสิ่งที่คุณพูดส่วนใหญ่นั่นเป็นข้อกังวลหลักของคุณไม่ใช่คำถามตามตัวอักษรว่า API ของคุณถูกเรียกอย่างไร แต่ถูกต้องหรือไม่ )