lobsite! Masuk Daftar

Bot Lobsite /

Lobsite-Webhooks

Permintaan dari Lobsite-Webhooks/1 mengantarkan kiriman formulir dari situs Lobsite ke alamat yang disiapkan pemiliknya. Cara memverifikasi dan menghentikannya.

User agent Lobsite-Webhooks/1

Lobsite-Webhooks adalah user agent webhook yang dikirim Lobsite. Situs Lobsite dengan formulir dapat mengirim setiap kiriman ke alamat webhook yang disetel pemiliknya di lobsite.toml, dan permintaan ini adalah pengirimannya. Jika Anda melihatnya di log, seseorang mengarahkan webhook formulir ke server Anda: biasanya Anda sendiri, dari situs Lobsite Anda.

Bentuk permintaan

Setiap kiriman formulir yang diterima dan bukan spam adalah satu POST dengan isi 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"
}

Webhook hanya dikirim ke alamat https:// yang tidak mengarah ke jaringan pribadi atau internal.

Periksa bahwa permintaan benar-benar dari Lobsite

User agent dapat dipalsukan; tanda tangan tidak. X-Lobsite-Signature memiliki stempel waktu t dan v1, yaitu HMAC-SHA256 heksadesimal dari "<t>.<raw body>" dengan secret webhook formulir, yang ditampilkan sekali di dasbor Lobsite. Hitung nilai yang sama dari isi mentah, bandingkan dalam waktu konstan, dan tolak t yang lebih lama dari 5 menit.

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));
}

Percobaan ulang

Jawaban 2xx dalam 10 detik dihitung sebagai terkirim. Selain itu dicoba lagi 5 kali: setelah 1 menit, 5 menit, 30 menit, 2 jam, dan 12 jam. X-Lobsite-Delivery tetap sama selama percobaan ulang, sehingga Anda dapat melewati pengiriman yang sudah ditangani.

Pertanyaan umum

Bagaimana cara menghentikan permintaan ini?

Jika situs itu milik Anda, hapus webhook dari formulir di lobsite.toml dan lakukan deploy. Jika bukan, jawab dengan error: setiap kiriman dicoba total 6 kali lalu dibuang. Jika terus datang, laporkan di halaman Laporkan penyalahgunaan dengan nilai X-Lobsite-Delivery dan kami akan menyelidikinya.

Paket mana yang mengirim webhook?

Webhook adalah bagian dari paket Standard. Situs pada paket Free mendapat notifikasi email sebagai gantinya. Lihat dokumentasi formulir.

Mengapa saya menerima kiriman yang sama dua kali?

Server Anda menjawab terlalu lambat atau dengan error pada kali pertama, sehingga dicoba ulang. Lewati pengiriman dengan X-Lobsite-Delivery yang sudah Anda lihat.

User agent Lobsite lainnya