ข้ามไปยังเนื้อหา

เว็บฮุกและการเชื่อมต่อ

ตรวจลายเซ็นเว็บฮุก

คำนวณลายเซ็นบนเนื้อคำขอแบบดิบ ก่อนการแปลง JSON ใด ๆ แล้วเปรียบเทียบในเวลาคงที่ การแปลงเนื้อหากลับเป็นสตริงใหม่ทำให้ไบต์เปลี่ยน และลายเซ็นจะไม่มีวันตรงกันอีก

ขั้นตอน

  1. จับเนื้อคำขอแบบดิบเป็นไบต์ เฟรมเวิร์กส่วนใหญ่ให้อ็อบเจกต์ที่แปลงแล้วมาโดยค่าเริ่มต้น ซึ่งสายไปแล้ว
  2. คำนวณลายเซ็นบนไบต์เหล่านั้นเป๊ะ ๆ ด้วยคีย์ลับของปลายทางฝั่งคุณ
  3. เปรียบเทียบด้วยการเทียบแบบเวลาคงที่ แทนการเทียบสตริงตรง ๆ
  4. แปลง JSON ต่อเมื่อลายเซ็นผ่านการตรวจแล้วเท่านั้น
  5. ปฏิเสธทุกอย่างที่ไม่ผ่าน และบันทึก id ของการส่งแทนตัวเนื้อหา

วิธีตรวจผลลัพธ์

การส่งของจริงผ่านการตรวจ ส่วนเนื้อหาเดียวกันที่แก้ไปหนึ่งตัวอักษรไม่ผ่าน

สิ่งที่มักผิดพลาด

  • แปลงแล้วแปลงกลับเป็นสตริงใหม่ก่อนคำนวณลายเซ็น
  • มิดเดิลแวร์แปลงเนื้อคำขอที่กินสตรีมไปก่อนถึงตัวจัดการของคุณ
  • === ธรรมดาบนลายเซ็น ซึ่งรั่วผ่านเวลาที่ใช้
บทความนี้แก้ปัญหาให้คุณได้ไหม

วิธีนี้ไม่ช่วย

เขียนมาหาเราพร้อมแพลตฟอร์มและเวอร์ชัน ขั้นตอนที่คุณทำ ผลที่คาดไว้ และพื้นที่ทำงานหรือคิวอาร์โค้ดที่เกี่ยวข้อง ปิดบังทุกข้อมูลลับก่อนแนบอะไรก็ตาม

เขียนถึงฝ่ายสนับสนุน