lobsite! Увійти Створити обліковий запис

Боти Lobsite /

Lobsite-Webhooks

Запити Lobsite-Webhooks/1 доставляють відповіді форм із сайту Lobsite на задану власником адресу. Як перевірити ці запити та припинити їх.

Агент користувача Lobsite-Webhooks/1

Lobsite-Webhooks — це user agent вебхуків, які надсилає Lobsite. Сайт у Lobsite з формою може надсилати кожну відповідь на адресу вебхука, задану власником у lobsite.toml, і ці запити є такими доставками. Якщо ви бачите його в журналах, хтось спрямував вебхук форми на ваш сервер: зазвичай це ви, зі свого сайту в Lobsite.

Як виглядає запит

Кожна прийнята відповідь форми, яка не є спамом, — це один POST із тілом JSON:

POST /hooks/contact HTTP/1.1
Content-Type: application/json
User-Agent: Lobsite-Webhooks/1
X-Lobsite-Event: form.submission
X-Lobsite-Delivery: dlv_3m9q…
X-Lobsite-Signature: t=1760372438,v1=5257a869…
{
  "type": "form.submission",
  "id": "sub_8x2k…",
  "site": "quiet-fox-4821",
  "form": "contact",
  "data": { "email": "ana@example.com", "message": "Hi!" },
  "created_at": "2026-10-13T16:20:38Z"
}

Вебхуки надсилаються лише на адреси https://, які не ведуть до приватних або внутрішніх мереж.

Перевірте, що запит справді від Lobsite

User agent можна підробити; підпис — ні. X-Lobsite-Signature містить часову позначку t та v1 — шістнадцятковий HMAC-SHA256 від "<t>.<raw body>" із секретом вебхука форми, який показується один раз у панелі керування Lobsite. Обчисліть те саме значення з необробленого тіла, порівняйте за сталий час і відхиліть t, старішу за 5 хвилин.

import { createHmac, timingSafeEqual } from "node:crypto";

function verified(secret, header, rawBody) {
  const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
  const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
  return v1?.length === expected.length && timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}

Повторні спроби

Відповідь 2xx протягом 10 секунд означає успішну доставку. В усіх інших випадках виконується ще 5 спроб: через 1 хвилину, 5 хвилин, 30 хвилин, 2 години та 12 годин. X-Lobsite-Delivery залишається однаковим у всіх повторних спробах, тож ви можете пропускати доставку, яку вже обробили.

Поширені запитання

Як припинити ці запити?

Якщо сайт ваш, видаліть webhook із форми в lobsite.toml і розгорніть зміни. Якщо ні, відповідайте помилкою: для кожної відповіді форми виконується загалом 6 спроб, після чого її відкидають. Якщо запити продовжують надходити, повідомте про них на сторінці Повідомити про зловживання, додавши значення X-Lobsite-Delivery, і ми розберемося.

На яких тарифах надсилаються вебхуки?

Вебхуки входять до тарифу Standard. Сайти на безкоштовному тарифі натомість отримують сповіщення електронною поштою. Див. документацію форм.

Чому я отримую ту саму відповідь двічі?

Уперше ваш сервер відповів надто повільно або з помилкою, тому було виконано повторну спробу. Пропускайте доставки, чиє значення X-Lobsite-Delivery ви вже бачили.

Інші агенти користувача Lobsite