وبهوک چیست؟
"وب هوک (Webhook) پیام خودکاری است که در صورت وقوع یک رویداد به وسیله اپلیکیشنها ارسال میشود و در برنامه نویسی وب کاربرد دارد."
وب هوک (Webhook) چیست؟
وبهوک (Webhook) در توسعه وب روشی برای تقویت یا تغییر رفتار یک صفحه وب یا برنامه وب با تماس های سفارشی است. این تماسها ممکن است توسط کاربران و توسعهدهندگان شخص ثالث که ممکن است لزوماً به وبسایت یا برنامه اصلی وابسته نباشند، نگهداری، اصلاح و مدیریت شوند. اصطلاح "وبهوک" توسط جف لیندزی در سال 2007 از اصطلاح برنامه نویسی کامپیوتری هوک ابداع شد. قالب وبهوک معمولا JSON است و درخواست به عنوان یک درخواست HTTP POST انجام میشود.
وبهوک (Webhook) چیست؟
وبهوک (Webhook) یک فراخوانی (callback) از جنس HTTP در سمت سرور گفته میشود که توسط برنامهنویس تعیین میشود. این درخواست معمولا با متد POST بوده و در هنگام بروز یک رخداد خاص فراخوانی میشود.
به عنوان مثال، فرض کنید یک مخزن روی سایت گیتهاب دارید و میخواهید هر بار که به آن مخزن push میکنید، به نحو خاصی به شما اطلاع داده شود (مثلا به حساب تلگرام شما یک پیام ارسال شود.) در این صورت، یک سرویس تحت وب ایجاد میکنید که هربار url مربوطهاش صدا زده شود، این رخداد را از طریق تلگرام به اطلاع شما برساند. سپس url سرویس تحت وب ایجاد شده را در بخش Webhook از تنظیمات مخزنتان اضافه میکنید.
در سرویس بکتوری وبهوک میتواند به اهداف مختلفی صدا زده شود. ممکن است شما بخواهید وقتی اتفاق خاصی رخ میدهد، تابع دیگری trigger شده و به طور موازی اتفاق بیفتد؛ مثلا، میخواهید وقتی همهی بازیکنها به سرور بازی وصل میشوند و بازی میخواهد آغاز شود، از تعداد الماسهایشان به اندازهی مشخصی کم شود. یا ممکن است بخواهید وقتی کاربر میخواهد عمل خاصی انجام دهد، ابتدا بررسی شود که آیا حق انجام آن کار را دارد یا خیر؛ و در صورت اعتبارسنجی اجازهی انجام آن عمل به کاربر داده شود. مثلا وقتی بازی میخواهد آغاز شود، اگر تعداد الماسهای کاربری کافی نیست، به او اجازهی بازی داده نشود.
عملکرد وبهوک (Webhook)
وبهوک ها «بازخوانی HTTP تعریف شده توسط کاربر» هستند. آنها معمولاً توسط برخی رویدادها، مانند Push کردن کد به یک مخزن یا ارسال نظر به یک وبلاگ، تحریک میشوند. هنگامی که آن رویداد رخ می دهد، سایت منبع یک درخواست HTTP به URL پیکربندی شده برای وبهوک می کند. کاربران میتوانند آنها را طوری پیکربندی کنند که رویدادهای یک سایت باعث ایجاد رفتار در سایت دیگر شوند. استفادههای متداول برای راهاندازی زیر ساختها با سیستمهای یکپارچهسازی مداوم یا اطلاعرسانی به سیستمهای ردیابی اشکال است. از آنجایی که وبهوک ها از HTTP استفاده می کنند، می توانند بدون افزودن زیرساخت های جدید در سرویس های وب ادغام شوند.
احراز هویت اعلان وبهوک
هنگامی که مشتری (وبسایت یا برنامه اصلی) با سرور کاربر شخص ثالث تماسی با وبهوک برقرار میکند، درخواست POST دریافتی باید احراز هویت شود تا از حمله جعل جلوگیری شود و مهر زمانی آن تأیید شود تا از حمله مجدد جلوگیری شود. تکنیک های مختلفی برای احراز هویت مشتری استفاده می شود:
- برای احراز هویت کلاینت می توان از احراز هویت اولیه HTTP استفاده کرد.
- وبهوک می تواند شامل اطلاعاتی در مورد نوع رویداد و یک امضای مخفی یا دیجیتالی مشترک برای تأیید وبهوک باشد.
- یک امضای HMAC را می توان به عنوان هدر HTTP گنجاند. GitHub، Stripe و Facebook از این تکنیک استفاده می کنند.
- زمانی که اتصال برقرار شد می توان از احراز هویت متقابل TLS استفاده کرد. سپس نقطه پایانی (سرور) می تواند گواهی مشتری را تأیید کند.
فرستنده ممکن است انتخاب کند که فهرست ثابتی از آدرسهای IP که درخواستها از آنها ارسال میشود، حفظ کند. این به تنهایی یک اقدام امنیتی کافی نیست، اما برای زمانی که نقطه پایانی دریافت کننده پشت فایروال یا NAT قرار دارد، مفید است.