وقّع طلبات webhook وتحقق من توقيعها
يصل حدث مزيف يقول إن الدفع تم، أو تحديث طلب مختلق، بسهولة إلى أي خدمة تصدّق كل ما يصلها: وقّع إشعاراتك الصادرة بسرّ مشترك وتحقق من الواردة، فتظهر صالحة أو معدّلة أو منتهية الصلاحية. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
داخل متصفحك مجانًا
مشكلة الثقة بأي رسالة تصل
الخدمة التي تقبل أي رسالة تصلها على أنها صحيحة يمكن لأي شخص أن ينتحل صفة غيره أمامها: حدث مزيف يقول إن الدفع تم، أو تحديث طلب مختلق، أو إعادة إرسال رسالة التُقطت سابقًا. وعلى جانب الإرسال تحدث المشكلة المعاكسة، فمن دون توقيع تستند إليه يستطيع الشريك أن ينكر أنك أرسلت الحدث أصلًا، فتبقى تذكرة الدعم بلا وسيلة لحسمها. وتوقيع ما يخرج والتحقق مما يدخل يتيحان للطرفين إثبات ما أُرسل فعلًا وأن شيئًا لم يتغير في الطريق. ولهذا لم تعد الثقة بالمحتوى دون تحقق نموذجًا آمنًا منذ أن صارت هذه الإشعارات تحمل المدفوعات والطلبات.
اتجاهان بأداة واحدة
عند الإرسال أدخل المحتوى والسرّ المشترك لتحصل على توقيع تضيفه إلى ترويسات الرسالة قبل تسليمها، مثل الترويسة KIT-Signature في المثال. وعند الاستقبال أدخل الرسالة الواردة والتوقيع الذي رافقها، فتقارن الأداة بينهما وتخبرك هل هي صالحة أم معدّلة أم منتهية الصلاحية. وتذكّر أن التوقيع ليس تشفيرًا، فالمحتوى يبقى مقروءًا والتوقيع يثبت فقط مصدره وأنه لم يتغير بعد توقيعه. والأسلم أن تتحقق قبل المعالجة وأن ترفض ما يفشل قبل أن يصل إلى منطق عملك.
حالات الاستخدام
تحقق من إشعارات بوابة دفع
متجر إلكتروني يتحقق من توقيع كل إشعار دفع وارد من بوابته قبل تأكيد الطلب، فلا يثق بأي إشعار فشل التحقق من صحة توقيعه.
حماية إشعارات نظام داخلي
مؤسسة النخيل للمقاولات توقّع الإشعارات المرسلة من نظامها الداخلي لعملائها، فيتحقق كل عميل أن الإشعار فعلًا من المؤسسة لا من طرف منتحل.
الأسئلة الشائعة
هل يُرسَل المفتاح السري إلى خادمكم أثناء الاستخدام من الموقع؟
لا، التوقيع والتحقق يجريان بالكامل داخل متصفحك؛ المفتاح السري لا يغادر جهازك في أي لحظة.
هل الاستخدام من الموقع مجاني بلا حدود؟
نعم، من هذه الصفحة الاستخدام مجاني ودون حد على عدد المرات.
ماذا يحدث إن كان التوقيع غير صحيح؟
تُظهر الأداة نتيجة تحقق واضحة (صحيح أو غير صحيح)؛ أي بيانات فشل توقيعها يُنصح برفضها وعدم معالجتها في نظامك.
هل يستلزم الاستخدام تسجيل حساب؟
لا، لا توجد حسابات حاليًا؛ الأداة داخل المتصفح تعمل دون تسجيل دخول.
هل التوقيع هو نفسه التشفير؟
لا. التوقيع لا يخفي المحتوى الذي يبقى مقروءًا، بل يثبت من أرسله وأنه لم يتغير بعد التوقيع، باستخدام سرّ مشترك وبصمة تجزئة لمحتوى الرسالة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/webhook-sign \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"payload":{"event":"ping"},"secret":"whsec_123"}'const res = await fetch("https://api.kit.forhosting.com/dev/webhook-sign", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"payload": {
"event": "ping"
},
"secret": "whsec_123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/webhook-sign",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"payload": {
"event": "ping"
},
"secret": "whsec_123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/webhook-sign", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"payload":{"event":"ping"},"secret":"whsec_123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"payload":{"event":"ping"},"secret":"whsec_123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/webhook-sign", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"payload": {
"event": "ping"
},
"secret": "whsec_123"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.webhook_sign",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
أداة توقيع webhook تنشئ توقيع HMAC لبيانات ترسلها، أو تتحقق من توقيع وارد مع حدث webhook من خدمة خارجية للتأكد أنه لم يُزوَّر أو يُعبث به في الطريق. تعمل مجانًا داخل متصفحك بلا حد استخدام، وهي خطوة أمان أساسية قبل تنفيذ أي إجراء بناءً على حدث webhook وارد.
لماذا التوقيع أساسي في أي webhook
التوقيع الرقمي (HMAC) يحل هذه المشكلة: الطرف المُرسِل يوقّع البيانات بمفتاح سري مشترك، وطرف الاستقبال يتحقق من التوقيع قبل الوثوق بالحدث؛ أي تعديل ولو حرف واحد في البيانات يُبطل التوقيع فورًا ويكشف محاولة العبث. أي عنوان webhook مفتوح على الإنترنت معرّض لمحاولة إرسال بيانات مزيّفة تنتحل صفة خدمة موثوقة — كإرسال إشعار دفع وهمي يوهم نظامك بأن طلبًا دُفع فعليًا.
يعمل داخل متصفحك مجانًا
تلصق البيانات والمفتاح السري فتُنشئ الأداة التوقيع أو تتحقق منه بالكامل على جهازك، دون إرسال المفتاح السري لأي خادم خارجي في أي خطوة — وهذا مهم لأن أمان المفتاح هو أساس أمان النظام كله. الاستخدام من هذه الصفحة مجاني تمامًا وبلا حد على عدد المرات، مناسب للاختبار السريع أثناء بناء أو تشخيص تكامل webhook جديد. هذا يعني أنك تستطيع اختبار مفتاح سري حقيقي من نظام إنتاج دون قلق من تسريبه عبر الشبكة أثناء الاختبار، وهو ما لا تضمنه أدوات تعمل على خادم خارجي.
ربطها بخط أتمتة حقيقي
يكفي إعداد قواعد التحقق مرة واحدة لتُطبَّق تلقائيًا على كل حدث وارد لاحقًا دون تدخل يدوي متكرر. من يحتاج التحقق ضمن مسار آلي فعلي — التحقق من توقيع كل webhook وارد قبل معالجته تلقائيًا — يستدعي الوظيفة نفسها عبر الـAPI بسعر $0.002 لكل حدث. هذا يفيد أنظمة تستقبل عددًا كبيرًا من أحداث webhook يوميًا وتحتاج تحققًا آليًا موثوقًا لكل واحد دون كتابة كود تحقق منفصل بكل لغة برمجة تستخدمها.
حالات التكامل
تشخيص تكامل جديد سريعًا
مطوّر في شركة الخليج الرقمية يختبر توقيع HMAC داخل متصفحه أثناء بناء تكامل webhook جديد، قبل ربطه فعليًا بالنظام الإنتاجي.
أسئلة تقنية
ما تكلفة الاستخدام عبر API؟
$0.002 لكل حدث عند التنفيذ من جهة الخادم ضمن خط تحقق آلي.
أي خوارزميات HMAC مدعومة؟
الخوارزميات الشائعة المستخدمة في توقيع webhooks الحديثة، وتُحدَّد عند الطلب حسب ما تتطلبه الخدمة التي تتكامل معها.