nonce window คืออะไร?

อัปเดตล่าสุด: 31 มีนาคม 2568

หนึ่งในการตั้งค่าเสริมที่มีให้ใช้งานเมื่อสร้าง API key ใหม่คือ nonce window

nonce window คือกรอบเวลาสั้นๆ (1 วินาที, 10 วินาที ฯลฯ) ซึ่งในระหว่างนั้นคำขอ API ที่มี nonce ที่ไม่ถูกต้อง โดยเฉพาะค่า nonce ที่ต่ำกว่าค่า nonce ที่เคยใช้ไปแล้ว จะไม่ทำให้เกิดข้อผิดพลาด nonce ไม่ถูกต้อง (EAPI:Invalid nonce)

วัตถุประสงค์ของ nonce window คือเพื่อแก้ไขข้อผิดพลาด nonce ที่เกิดจากความไม่สอดคล้องกันของเครือข่าย (เช่น เมื่อคำขอ API มาถึงในลำดับที่แตกต่างจากลำดับที่ส่งไปเนื่องจากความล่าช้าของเครือข่าย)

ในสถานการณ์ส่วนใหญ่ การตั้งค่า nonce window ควรคงไว้ที่ค่าเริ่มต้นเป็น 0 (ศูนย์) แต่ในกรณีที่ได้รับข้อผิดพลาด nonce ไม่ถูกต้องเนื่องจากปัญหาเครือข่าย การตั้งค่า nonce window อาจเป็นประโยชน์

การตั้งค่าที่เหมาะสมสำหรับ nonce window ขึ้นอยู่กับระยะเวลาที่ต้องการและความละเอียดของ nonce นั้นเอง

ตัวอย่างสำหรับ nonce ที่อิงตามเวลา UNIX ปัจจุบันในหน่วย milliseconds (เป็นตัวเลือกที่นิยมและมีประสิทธิภาพสำหรับ nonce) จะเป็นดังนี้:

  • การตั้งค่า nonce window เป็น 5000 ซึ่งอนุญาตให้มี nonce window 5 วินาที,

  • การตั้งค่า nonce window เป็น 8000 ซึ่งอนุญาตให้มี nonce window 8 วินาที,

  • หรือการตั้งค่า nonce window เป็น 500 ซึ่งอนุญาตให้มี nonce window 0.5 วินาที

ตัวอย่างสำหรับ nonce ที่อิงตามตัวนับที่เพิ่มขึ้นอย่างง่าย (1, 2, 3 และอื่นๆ แม้ว่าจะไม่แนะนำ) จะเป็นดังนี้:

  • การตั้งค่า nonce window เป็น 30 ซึ่งอนุญาตให้มี nonce window 10 วินาที ที่อัตรา API call สูงสุด 3 ครั้งต่อวินาที,

  • การตั้งค่า nonce window เป็น 50 ซึ่งอนุญาตให้มี nonce window 5 วินาที ที่อัตรา API call สูงสุด 10 ครั้งต่อวินาที,

  • หรือการตั้งค่า nonce window เป็น 5 ซึ่งอนุญาตให้มี nonce window 5 วินาที ที่อัตรา API call สูงสุด 1 ครั้งต่อวินาที

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่