نشانی مخفی وبهوک به تنهایی احراز هویت فرستنده نیست. پیش از پردازش رخداد، امضا و زمان را طبق قرارداد ارائهدهنده بررسی کنید و از اجرای دوباره رخداد جلوگیری کنید. دریافت HTTP موفق هم باید از انجام موفق کار داخلی جدا باشد تا رخداد گم یا چندبار پردازش نشود.
روش اجرا و تصمیمگیری
بدنه خام درخواست را پیش از تبدیل یا بازنویسی نگه دارید؛ بعضی سازوکارهای امضا دقیقاً روی همان بایتها محاسبه میشوند. نام هدر، الگوریتم و روش ترکیب زمان و بدنه را از مستندات همان سرویس بگیرید. الگوریتم دلخواه با شباهت ظاهری جای قرارداد واقعی را نمیگیرد.
کلید امضا در سمت سرور و محل محدود نگهداری شود. امضا با روش مقایسه امن کتابخانه معتبر بررسی شود و درخواست نامعتبر پیش از اثر بیرونی رد گردد. زمان رخداد و پنجره پذیرش به کاهش بازپخش کمک میکنند، اما ساعت سیستم و رفتار retry را نیز باید در نظر گرفت.
شناسه رخداد را ثبت کنید تا تحویل دوباره، کار تکراری نسازد. پس از پذیرش معتبر، میتوان کار را به صف داخلی سپرد؛ پاسخ دریافت باید با ذخیره پایدار رخداد هماهنگ باشد. خطای کارگر نباید باعث شود سامانه فکر کند رخداد هرگز دریافت نشده، یا برعکس دریافت موفق را انجام نهایی اعلام کند.
نمونهٔ ساختگی و قابل تکرار
در آزمون ساختگی، یک رخداد با امضای معتبر به ابزار بیاثر میرسد و در صف ثبت میشود. همان بایتها بار دوم با همان شناسه تحویل میشوند؛ برنامه سابقه را پیدا میکند و اثر تازه نمیسازد. در مورد سوم فقط یک نویسه بدنه عوض شده اما امضا همان است؛ درخواست باید رد شود. این آزمونها با کلید آزمایشی و مقصد داخلی انجام میشوند. رخداد واقعی سرویس را برای امتحان دستکاری و بازپخش نکنید.
محدودیتها و خطاهای رایج
همه ارائهدهندگان روش امضای یکسان ندارند. برخی جزئیات نسخهای یا نیاز به چرخش کلید دارند. این راهنما نمونه طراحی دفاعی است و امنیت کل سرور، شبکه و حساب سرویس را ثابت نمیکند. خطاهای امضا را بدون چاپ کلید و متن خصوصی پایش کنید.
کنترل پیش از استفاده
| کنترل | معیار پذیرش |
|---|---|
| بدنه | بایتهای خام مورد استفاده در امضا با درخواست دریافتی یکسان باشند. |
| زمان و اصالت | امضا و پنجره زمانی طبق قرارداد مقصد کنترل شوند. |
| تکرار | شناسه رخداد تکراری اثر جدید ایجاد نکند. |
کاربرگ همراه
کاربرگ حالتهای معتبر، تغییر بدنه و تحویل دوباره را جدا میکند. نتیجه واقعی را کنار انتظار بنویسید و کلید امضا را در فایل قرار ندهید. برای بررسی چرخش کلید، ردیف تازه با شناسه نسخه کلید بسازید.
دریافت کاربرگ CSV این راهنما — دادههای داخل فایل نمونهٔ ساختگیاند. نسخهٔ اصلی را نگه دارید و برای آزمون خودتان یک کپی بسازید.
منبع و ادامهٔ کار
Stripe: مدیریت وبهوک. تاریخ بررسی منابع: ۱ نوامبر ۲۰۲۶.
اگر کاربرد شما پاسخگویی به مشتری است، مسیر مرتبط اپرا را ببینید و مسئله و محدودیتهای همین کاربرگ را برای بررسی در دمو همراه داشته باشید.