تعرض الآن: التحقق من التوقيع

التنبيهات وWebhooks - التحقق من التوقيع

تحقق من توقيع كل طلب webhook قبل معالجة الأحداث في الإنتاج.

استخدم سر التوقيع الخاص بنقطة النهاية والمعاد عند إنشاء وجهة webhook.

تتضمن ترويسات التسليم X-SAHMK-Signature, X-SAHMK-Event, and X-SAHMK-Event-Id.

  • تتضمن كل عملية تسليم X-SAHMK-Signature.
  • يُنشأ التوقيع باستخدام HMAC-SHA256 على الحمولة القياسية.
  • ارفض التوقيعات غير المطابقة باستخدام HTTP 401.
text
# Header format:
# X-SAHMK-Signature: t=<unix_ts>,v1=<hex_hmac>

timestamp, received = parse_signature_header(request.headers["X-SAHMK-Signature"])
canonical_json = json.dumps(payload, sort_keys=True, separators=(",", ":"))
signed_payload = f"{timestamp}.{canonical_json}"
computed = HMAC_SHA256(signing_secret, signed_payload)

if computed != received:
    return 401

process_event(payload)

يُضمّن الطابع الزمني في ترويسة التوقيع. ينبغي للمستقبلين تطبيق تحقق من النافذة الزمنية للحماية من إعادة الإرسال.

آخر تحديث في