factograf
EN
Sign in

Method of web development

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.

Function

Webhooks are "user-defined HTTP callbacks". They are usually triggered by some event, such as pushing code to a repository, a purchase, a comment being posted to a blog and many more use cases. 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 or to notify bug tracking systems. Because webhooks use HTTP, they can be integrated into web services without adding new infrastructure. As of 2025, half of surveyed API teams reported using webhooks, alongside WebSockets and GraphQL, as a complement to REST.

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. 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.

Server-side request forgery risk

Because a webhook's sender typically lets a user configure an arbitrary destination URL, the OWASP Foundation identifies this as a common vector for server-side request forgery, where the sender's own server can be made to request internal network resources. Recommended mitigation is to re-check the resolved IP before each delivery, not only at registration.

Read next

In 13 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article