เผยแพร่เมื่อ

วิธีออกแบบการเข้าถึงเว็บ API ที่มีความปลอดภัยสำหรับเว็บไซต์ของคุณ

ผู้เขียน

เมื่อเรายอมให้ผู้ใช้เข้าถึงเว็บ API เราต้องแน่ใจว่าคำขอ API แต่ละครั้งได้รับการยืนยันแล้ว ซึ่งหมายความว่าเราต้องยืนยันว่าผู้ใช้เป็นบุคคลที่ตนเองอ้าง

Image

ในโพสต์นี้ เราจะพิจารณาวิธีการทั่วไปสองวิธีในการรักษาความปลอดภัยการเข้าถึง API:

  1. การยืนยันตัวตนโดยใช้โทเคน

  2. การยืนยันตัวตน HMAC (Hash-based Message Authentication Code)

แผนภาพด้านล่างแสดงวิธีการทำงานของแต่ละวิธี

การยืนยันตัวตนโดยใช้โทเคน

  1. ผู้ใช้ป้อนรหัสผ่านบนไคลเอ็นต์ ซึ่งส่งไปยังเซิร์ฟเวอร์ยืนยันตัวตน

  2. เซิร์ฟเวอร์ยืนยันรหัสผ่านและสร้างโทเคนที่มีเวลาหมดอายุ

  3. ไคลเอ็นต์สามารถใช้โทเคนนี้ใน HTTP Header เพื่อส่งคำขอไปยังเซิร์ฟเวอร์ได้

  4. โทเคนยังคงใช้งานได้จนกว่าจะหมดอายุ ทำให้สามารถเข้าถึงทรัพยากรของเซิร์ฟเวอร์ได้

การยืนยันตัวตน HMAC

  1. เซิร์ฟเวอร์สร้างคู่กุญแจ: กุญแจสาธารณะ (Public APP ID) และกุญแจส่วนตัว (API Key)

  2. ด้านไคลเอ็นต์ สร้างลายเซ็น (HMAC) โดยใช้กุญแจเหล่านี้และคุณสมบัติต่างๆ ที่แสดงในแผนภาพ

  3. ไคลเอ็นต์ส่งคำขอไปยังเซิร์ฟเวอรพร้อมกับลายเซ็น HMAC ใน HTTP Header

  4. เซิร์ฟเวอร์รับคำขอและแยกคุณสมบัติเพื่อสร้างลายเซ็น (HMAC B) โดยใช้ API Key ที่เก็บไว้

  5. เซิร์ฟเวอร์เปรียบเทียบ HMAC A (จากไคลเอ็นต์) และ HMAC B (จากเซิร์ฟเวอร์) หากตรงกัน เซิร์ฟเวอร์จะตอบสนองคำขอ

คำถาม: HMAC รักษาความสมบูรณ์ของข้อมูลได้อย่างไร ทำไมเราจึงรวม "เวลาส่งคำขอ" ใน HMAC

คำตอบ: HMAC รักษาความสมบูรณ์ของข้อมูลโดยการสร้างลายเซ็นเฉพาะตามข้อมูลคำขอและกุญแจ ดังนั้นหากข้อมูลใดๆ ถูกเปลี่ยนแปลง ลายเซ็นจะไม่ตรงกัน การรวม "เวลาส่งคำขอ" ช่วยป้องกันการโจมตีแบบเล่นซ้ำ (คำขอเก่าถูกนำมาใช้ซ้ำ) เนื่องจากลายเซ็นมีผลเฉพาะในเวลาที่กำหนด

โปรดทราบว่าเวอร์ชันภาษาไทยได้รับการช่วยเหลือจาก AI ดังนั้นอาจมีข้อผิดพลาดเล็กน้อย

ผู้เขียน

Ai Base Network (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย

หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องการทางเทคโนโลยีของคุณทุกเมื่อ

ABNAsia.org

© ABN ASIA