WebHooks (вебхуки)

Что такое веб-хуки (webhooks) и для чего их используют?

В современном мире интернет-технологий ни одно приложение не может оптимально выполнять свои функции, если оно не связано с другими программами. 

Платформы для онлайн-торговли должны взаимодействовать с платежными системами, платежные системы должны обмениваться данными с банковскими приложениями, а банковские приложения должны иметь доступ к данным о счетах клиентов.

Способность независимых программ общаться друг с другом и обмениваться данными — основы ценности многих онлайн-сервисов, а веб-хуки (webhooks) — это один из способов облегчить это общение. 

Если вы хотите, чтобы одно бизнес-приложение, в котором вы зарегистрированы, самостоятельно отправляло оповещения другому приложению для автоматического выполнения полезных действий, то, возможно, вам стоит начать использовать именно веб-хуки. 

Из этой статьи вы узнаете, что такое веб-хуки, как они работают, для чего они применяются и что можно сделать для их безопасного использования.

Что такое веб-хуки?

Веб-хуки (англ. Webhook, «интернет-крючок») — это HTTP-вызовы, инициируемые событием на сайте или в приложении. Другими словами, webhook — это запрос, отправляемый по указанному пользователем URL-адресу, когда определённое событие происходит на стороннем ресурсе.

Обычно триггером является какое-то событие, например, оставление комментария или регистрация нового пользователя. Когда происходит это событие, сайт совершает HTTP-запрос на URL-адрес, настроенный для веб-хука. 

Веб-хуки представляют собой простой и гибкий способ автоматизации задач, которые в противном случае были бы повторяющимися и трудоёмкими. Их можно использовать для непрерывной интеграции между приложениями, отправки уведомлений или синхронизации данных.

Веб-хуки отправляют информацию в режиме, близком к реальному времени, а их использование не ограничивается задачами разработки — они могут использоваться для широкого спектра интеграций, например с социальными сетями, аналитическими приложениями или платформами для поддержки клиентов.

Как работают веб-хуки?

Веб-хук — это вызов по протоколу HTTP на установленный URL-адрес, который запускается событием на сайте или в приложении. Запрос веб-хука обычно содержит информацию о событии, которое его вызвало. Эта информация может быть использована для совершения немедленного действия на стороне сервера, принимающего уведомление, например, обновить базу данных или отправить новому пользователю письмо с подтверждением регистрации. 

Для того, чтобы веб-хуки могли функционировать, они должны быть предусмотрены разработчиками приложения заранее. Так, например, разработчики банковского приложения закладывают в него возможность оповещения сервисов, которые подключены к нему, о списании средств с карт пользователей этих сервисов.

Рассмотрим, как это работает в деталях:

  • Вы подписаны на стриминговый сервис. Владельцы стриминга хотят отправлять вам электронное письмо в начале каждого месяца, когда он снимает деньги с вашей кредитной карты.
  • Стриминг согласовывает и создает веб-хук для сервера банковской службы (источник), чтобы при списании средств с кредитной карты (триггер мероприятия) отправлялось уведомление на службу электронной почты (назначение)
  • Веб-хуки банковской системы будут включать информацию списании (данные о событии), которая будет использована скриптом службы электронной почты для создания подходящего сообщения для вас, клиента.

Нужно отметить, что именно от скрипта на сервере-получателе — небольшой программы, нацеленной на выполнение отдельных действий — зависит, что будет происходит дальше с данными из веб-хука — будут ли они заноситься в базу данных, запускать выполнение других скриптов или отправку уведомлений.

Поскольку веб-хуки подразумевают отправку в том числе конфиденциальной информации, важно принимать меры для обеспечения безопасности данных.

Как использовать веб-хуки безопасно?

Конечные точки назначения  —  URL-адреса, настроенные в системе для получения данных, отправленных обратным HTTP-вызовом — являются потенциальной мишенью для атаки для злоумышленников, поэтому крайне важно обеспечить их безопасность. 

Один из способов — заменить реальные URL-адреса конечных точек на случайно сгенерированные с помощью специальных плагинов. Также можно использовать  HTTPS для всех коммуникаций. Это гарантирует, что вся конфиденциальная информация, передаваемая с помощью веб-хука, будет зашифрована и её не получится перехватить. Ещё один способ — это проверка клиента перед обработкой любых запросов с помощью цифровой подписи. 

Следующий важный для безопасности момент при настройке веб-хука — использование протокола сетевого времени (NTP). Использование NTP поможет предотвратить атаки повторного воспроизведения, когда злоумышленник перехватывает запрос веб-хука, а затем отправляет его повторно. Если время сервера и получателя не синхронизировано, злоумышленник потенциально может повторно отправить запрос до его обработки. Это приведёт к тому, что одно и то же событие будет обработано более одного раза.

Используя NTP, вы можете быть уверены, что часы на сервере и клиенте синхронизированы. Это предотвратит повторные атаки и гарантирует, что каждый запрос веб-хука будет обработан только один раз, что жизненно важно при обработке срочных данных.

Для чего нужны веб-хуки?

Прежде всего, веб-хуки необходимы для получения уведомлений о событиях. События определяются как любые действия, которые происходят на вашем веб-сайте или в приложении.

Некоторые примеры событий:

  • Пользователь регистрирует учетную запись
  • Пользователь добавляет товар в свою корзину
  • Пользователь завершает покупку

Также можно настроить веб-хуки для автоматической публикации контента или обработки запросов пользователей с помощью чат-ботов. 

Если у вас есть веб-приложение, которое позволяет пользователям вводить конфиденциальную информацию, вы можете использовать веб-хук для отправки этой информации в вашу внутреннюю базу данных для надежного хранения.

Веб-хуки могут пригодиться  для настройки аутентификации. Когда вы используете аутентификацию, вы можете быть уверены, что только авторизованные пользователи могут получить доступ к данным.

Существует множество различных способов аутентификации, например, система токенов, которые генерируются для каждого пользователя, а затем включаются в запросы веб-хуков. Таким образом вы сможете убедиться, что пользователь уполномочен получить доступ к данным.

Еще один способ аутентификации с помощью веб-хуков — использование API-ключей, известных только пользователю и владельцу сайта. Ключи API будут использоваться для подписи каждого запроса. Это позволит проверить, что запрос поступил из надежного источника.

Заключение

Веб-хуки помогают администраторам онлайн-ресурсов узнавать о новых событиях или изменениях, которые происходят в системе. Их часто используют для настройки автоматических действий на сайте или передачи данных в другое приложение. 

С помощью веб-хуков также можно уведомлять пользователей о новинках, изменении цены товара, новых сообщениях. Настроить веб-хук можно, если на сервере приложения предусмотрена такая возможность, при этом важно позаботиться о безопасности передачи данных.

 

 

A
API
APN
APN (Access Point Name)
C
Callback
Chat GPT
CPaaS (Сommunications Platform as a Service )
D
DCH (Data Clearing House)
DISA (Direct Inward System Access)
E
eSIM
F
FMC-телефония
I
ICQ
ios
IP-адрес
IP-адрес (IP-address, Internet Protocol Address)
IP-телефон
IP-телефон (VoIP-телефон)
IP-телефония
M
MSC (Mobile Switching Center)
MSISDN
Multi IMSI SIM
Multi-IMSI
MWaaS (Middleware as a Service)
N
NRTRDE (Near Real Time Roaming Data Exchange)
P
PBX-телефония
PSTN, POTS (Public Switched Telephone Network, Plain Old Telephone Serivce)
Q
QoS
QR-kod
R
RAEX (Roaming Agreement EXchange)
S
SIP-транк
STT/TTS (Speech-to-Text/Text-to-Speech)
T
TADIG (Transferred Account Data Interchange Group)
TAP 3 (Transferred Account Procedure 3)
V
VoIP-телефония
VoWiFi, WFC, VoWLAN
VPoP Service (Virtual Point-of-Presence Service)
W
WebRTC
Б
Бан
В
ВАТС
Виды телефонных звонков
Виртуальная SIM-карта (Virtual SIM)
И
ИИ
Искусственный интеллект
К
Колл-центр (центр по обработке звонков)
Колл-центры
Коммутатор (телефонный коммутатор)
Контакт-центр
О
Облачная АТС (Cloud PBX)
Облачное хранилище
Омниканальность
Онлайн-чат
П
Провайдер
Публичное облако (Public Cloud)
Пул номеров
Р
Речевая аналитика ИИ
Т
Трафик (с англ. «движение»)
У
УАТС
УАТС (Учрежденческая АТС, офисная АТС, мини-АТС)
Ч
Что такое STT и TTS?
Корпоративный блог MCN Telecom