บทความทั้งหมด

จัดการ API key ให้ปลอดภัย: เก็บ หมุนเวียน และจำกัดการใช้งาน

อ่าน 1 นาที

ไม่มีรูปภาพ
จัดการ API key ให้ปลอดภัย: เก็บ หมุนเวียน และจำกัดการใช้งาน

API key คือกุญแจที่ให้ระบบของคุณคุยกับบริการอื่น เช่น สร้างรายการรับชำระกับ PPay ถ้ากุญแจรั่ว คนอื่นอาจใช้แทนคุณได้ บทความนี้เป็นแนวทางเชิงป้องกันที่ทำได้จริงสำหรับร้านเล็กถึงทีมนักพัฒนา

เข้าใจก่อนว่าคีย์คือความลับ

ให้ปฏิบัติกับ API key เหมือนรหัสผ่าน ไม่ใช่ข้อมูลทั่วไป คีย์ที่ใช้เรียก API ฝั่งเซิร์ฟเวอร์ต้องอยู่ฝั่งเซิร์ฟเวอร์เท่านั้น ต้องไม่ถูกฝังในหน้าเว็บ ในแอปมือถือที่แจกให้ผู้ใช้ หรือในไฟล์ JavaScript ที่เบราว์เซอร์ดาวน์โหลดได้ เพราะทุกคนเปิดดูได้

เก็บคีย์อย่างไร

ควรทำ

  • เก็บในตัวแปรสภาพแวดล้อม (environment variable) หรือที่เก็บความลับของโฮสต์
  • จำกัดสิทธิ์ไฟล์ตั้งค่า ให้เฉพาะบัญชีที่รันแอปอ่านได้
  • ถ้าใช้ปลั๊กอินบน WordPress, WHMCS หรือ Magento ให้ใส่ในหน้าตั้งค่าของปลั๊กอินเท่านั้น และจำกัดคนที่เข้าหลังบ้านได้
  • เปิดการยืนยันตัวตนสองชั้น (2FA) ให้บัญชีผู้ดูแลระบบของร้านและของ PPay

ไม่ควรทำ

  • commit คีย์ลงที่เก็บโค้ดที่เป็นสาธารณะ หรือแม้แต่ที่เก็บส่วนตัวที่มีคนจำนวนมากเข้าถึง
  • ส่งคีย์ทางแชต อีเมล หรือภาพหน้าจอที่แชร์ต่อได้ง่าย
  • เขียนคีย์ลงใน log หรือข้อความแจ้งข้อผิดพลาดที่แสดงให้ผู้ใช้เห็น
  • ใช้คีย์เดียวกันกับหลายระบบจนไม่รู้ว่ารั่วจากที่ไหน

แยกคีย์ตามการใช้งาน

หลักการคือ "หนึ่งงาน หนึ่งคีย์" เมื่อแยกคีย์ตามเว็บไซต์หรือสภาพแวดล้อม (ทดสอบกับใช้งานจริง) หากต้องเพิกถอนคีย์หนึ่ง ระบบอื่นจะไม่หยุดตามไปด้วย และเมื่อพบการใช้งานผิดปกติจะย้อนหาต้นทางได้ง่ายขึ้น หากแพลตฟอร์มที่คุณใช้รองรับการสร้างคีย์หลายตัว ควรใช้ประโยชน์จากข้อนี้ ตรวจรายละเอียดตัวเลือกจริงในหน้าตั้งค่าบัญชีและ เอกสาร API ของ PPay

หมุนเวียนคีย์เป็นประจำ

การเปลี่ยนคีย์เป็นระยะช่วยลดความเสียหายหากมีคีย์เก่าหลุดไปโดยไม่รู้ตัว ขั้นตอนที่ปลอดภัยคือ

  1. สร้างคีย์ใหม่
  2. นำไปตั้งค่าในระบบทุกจุดที่ใช้ แล้วทดสอบว่าทำงานปกติ
  3. เพิกถอนคีย์เก่า
  4. ตรวจว่าไม่มีระบบใดยังใช้คีย์เก่าอยู่ เช่น งานตรวจตามรอบหรือสคริปต์ที่ลืมไว้

ควรหมุนเวียนทันทีเมื่อมีพนักงานหรือผู้รับจ้างที่เคยเข้าถึงคีย์ลาออกหรือเลิกงาน

เมื่อสงสัยว่าคีย์รั่ว

  1. เพิกถอนหรือเปลี่ยนคีย์ทันที ไม่ต้องรอพิสูจน์ก่อน
  2. ตรวจรายการรับชำระและการเรียกใช้งานที่ผิดปกติย้อนหลัง
  3. หากเคยลงที่เก็บโค้ด ให้ถือว่ารั่วแล้ว แม้ลบไฟล์ออกภายหลัง เพราะประวัติยังอยู่
  4. เปลี่ยนรหัสผ่านและ Webhook Secret ที่เกี่ยวข้องด้วย
  5. ตรวจหาจุดที่รั่ว เช่น log ภาพหน้าจอ หรือไฟล์สำรอง แล้วอุดช่องนั้น

อย่าลืมความลับของ webhook

นอกจาก API key แล้ว Webhook Secret ที่ใช้ตรวจลายเซ็นก็เป็นความลับระดับเดียวกัน อ่านเพิ่มเรื่องหลักการได้ที่ บทความเรื่อง webhook และอย่าให้ฝั่งรับเชื่อเพียงลายเซ็น ควรอ่านสถานะจากต้นทางซ้ำก่อนปล่อยของเสมอ

เช็กลิสต์สรุป

  • คีย์อยู่ฝั่งเซิร์ฟเวอร์เท่านั้น ไม่อยู่ในหน้าเว็บหรือที่เก็บโค้ดสาธารณะ
  • แยกคีย์ตามเว็บและสภาพแวดล้อม
  • มีกำหนดหมุนเวียนและรู้ว่าต้องเปลี่ยนที่ไหนบ้าง
  • เปิด 2FA ให้บัญชีผู้ดูแล
  • มีขั้นตอนฉุกเฉินที่ทุกคนในทีมรู้

ปิดท้าย

ความปลอดภัยของ API key ไม่ต้องซับซ้อน แค่ทำให้เป็นนิสัย หากคุณกำลังเชื่อมระบบกับ PPay ดูภาพรวมการเริ่มต้นได้ที่ หน้าเริ่มใช้งาน และรายละเอียดการเรียกใช้ที่ เอกสาร API

ลองตรวจสลิปอัตโนมัติกับร้านของคุณ

สมัครแล้วเริ่มใช้งานได้ภายในไม่กี่นาที

บทความอื่น ๆ