Webhook

In web development, a webhook is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users who need not be affiliated with the originating website or application. In 2007, Jeff Lindsay coined the term webhook from the computer programming term hook.[1]

Function

Webhooks are "user-defined HTTP callbacks".[2] They are usually triggered by some event, such as pushing code to a repository,[3] a purchase, a comment being posted to a blog[4] and many more use cases.[5] When that event occurs, the source site makes an HTTP request to the URL configured for the webhook. Users can configure them to cause events on one site to invoke behavior on another.

Common uses are to trigger builds with continuous integration systems[6] or to notify bug tracking systems.[7] Because webhooks use HTTP, they can be integrated into web services without adding new infrastructure.[8]

Authenticating the webhook notification

When the client (the originating website or application) makes a webhook call to the third-party user's server, the incoming POST request should be authenticated to avoid a spoofing attack and its timestamp verified to avoid a replay attack.[9] Different techniques to authenticate the client are used:

The sender may choose to keep a constant list of IP addresses from which requests will be sent. This is not a sufficient security measure on its own, but it is useful for when the receiving endpoint is behind a firewall or NAT.

See also

References

  1. ^ Web hook to revolutionize the web, 3 May 2007, archived from the original on 2018-06-30
  2. ^ "Webhooks". Atlassian. Retrieved 2019-09-24.]
  3. ^ About Webhooks - Github Help
  4. ^ WordPress Webhooks
  5. ^ Use Cases for Webhooks
  6. ^ Jenkins GitHub Commit Hooks HOWTO, archived from the original on 2015-09-25
  7. ^ Google Project Hosting - Post-Commit Web Hooks
  8. ^ What are WebHooks and How Do They Enable a Real-time Web?
  9. ^ "Why Verify". Svix. Svix Inc. Retrieved September 12, 2021. Another potential security hole is what's called replay attacks.
  10. ^ "DocuSign Connect Now Includes Basic Authentication Support". DocuSign. DocuSign, Inc. 16 November 2017. Retrieved January 15, 2020. the Connect notification service has been updated to support the Basic Authentication scheme with customers' Connect servers (listeners).
  11. ^ "Securing your webhooks". Github. Github, Inc. Retrieved September 12, 2021.
  12. ^ "Checking Webhook Signatures". Stripe. Stripe, Inc. Retrieved 12 May 2019.
  13. ^ "Getting Started - Graph API - Documentation - Facebook for Developers". Facebook. Facebook, Inc. Retrieved 12 May 2019.
  14. ^ "Mutual TLS: Stuff you should know". DocuSign. DocuSign, Inc. Retrieved January 15, 2020. Mutual TLS plus Client Access Control enables your listener app to ensure that the Connect notification message was sent by DocuSign and that it wasn't modified en route.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.