Webhook सिग्नेचर एनालाइज़र कैसे इस्तेमाल करें
- कच्ची रिक्वेस्ट बॉडी ठीक वैसे पेस्ट करें जैसे वह मिली थी (दोबारा फ़ॉर्मैट न करें)।
- scheme चुनें, secret डालें और signature हेडर की वैल्यू पेस्ट करें।
- Slack के लिए रिक्वेस्ट का timestamp जोड़ें; Twilio के लिए पूरा रिक्वेस्ट URL जोड़ें।
- Verify दबाएँ: VALID/INVALID, अपेक्षित बनाम दिया गया signature, टिप्पणियाँ और कोड स्निपेट दिखते हैं।
Webhook सिग्नेचर एनालाइज़र की खूबियाँ
- अपेक्षित signature WebCrypto से लोकल रूप से दोबारा निकालता है — secret कभी ब्राउज़र से बाहर नहीं जाते
- सामान्य HMAC-SHA256/SHA1/SHA512 (hex/Base64), Stripe, GitHub, Shopify, Slack, Twilio, GitLab टोकन और SHA-256(body+secret)
- Stripe और Slack के लिए timestamp सहनशीलता की जाँच (replay से सुरक्षा)
- ठीक वह payload दिखाता है जिस पर हस्ताक्षर हुआ, और constant-time तुलना का नतीजा
- चुनी हुई scheme के लिए तुरंत इस्तेमाल लायक़ Node.js verification स्निपेट
Webhook सिग्नेचर एनालाइज़र का उदाहरण
GitHub का X-Hub-Signature-256
इनपुट:
Body {"a":1} · Secret s · Signature sha256=37beaf650f70b40ec9706929c2e9d835cbd63729988f48781e6383a147215f07आउटपुट:
VALID — the signature matches
Algorithm: HMAC-SHA256 (hex) with "sha256=" prefix
Expected: sha256=37beaf65…215f07Webhook सिग्नेचर एनालाइज़र के बारे में अक्सर पूछे जाने वाले सवाल
कौन-सी scheme सपोर्ट की जाती हैं?
hex या Base64 में सामान्य HMAC-SHA256/SHA1/SHA512, Stripe (t=…,v1=… timestamp सहनशीलता के साथ), GitHub (sha256=…), Shopify (Base64), Slack (v0=… और X-Slack-Request-Timestamp के साथ), Twilio (URL + नाम से सॉर्ट किए पैरामीटर, Base64 SHA1), GitLab shared token और body + secret का SHA-256।
मान्य webhook INVALID क्यों दिखता है?
लगभग हमेशा इसलिए कि बॉडी दोबारा serialize हो गई: pretty-printing, key का बदला हुआ क्रम या आख़िर में नई लाइन बाइट बदल देते हैं। ठीक वही कच्ची बॉडी पेस्ट करें जो आपके सर्वर को मिली थी।
क्या मेरा secret सुरक्षित है?
हाँ — HMAC आपके ब्राउज़र में WebCrypto से निकाला जाता है; secret और payload पेज से बाहर कभी नहीं जाते।
timestamp सहनशीलता क्या है?
Stripe और Slack के लिए हस्ताक्षरित timestamp अभी के समय की सहनशीलता (डिफ़ॉल्ट 5 मिनट) के भीतर होना चाहिए, वरना HMAC मेल खाने पर भी दोबारा भेजी गई डिलीवरी ठुकरा दी जाती है।
तकनीकी नोट्स
Stripe "<t>.<body>" पर हस्ताक्षर करता है और हेडर में v1 signature सूचीबद्ध करता है; Slack "v0:<timestamp>:<body>" पर हस्ताक्षर करता है; Twilio पूरे URL के बाद नाम से सॉर्ट किए गए POST पैरामीटर पर हस्ताक्षर करता है। तुलनाएँ constant-time होती हैं ताकि वे प्रोडक्शन verification कोड जैसी ही रहें।