lobsite! Logg inn Registrer deg

Lobsites roboter /

Lobsite-Webhooks

Forespørsler fra Lobsite-Webhooks/1 leverer skjemainnsendinger fra et Lobsite-nettsted til en adresse eieren har valgt. Slik verifiserer og stopper du dem.

User agent Lobsite-Webhooks/1

Lobsite-Webhooks er user agenten til webhookene Lobsite sender. Et Lobsite-nettsted med et skjema kan sende hver innsending til en webhook-adresse eieren har satt i lobsite.toml, og disse forespørslene er de leveransene. Ser du den i loggene dine, har noen pekt webhooken til et skjema mot serveren din: som regel deg selv, fra ditt eget Lobsite-nettsted.

Slik ser en forespørsel ut

Hver godtatte innsending som ikke er spam, er én POST med en JSON-body:

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"
}

Webhooker sendes bare til https://-adresser som ikke peker til private eller interne nettverk.

Sjekk at en forespørsel virkelig kommer fra Lobsite

User agenten kan forfalskes; signaturen kan ikke. X-Lobsite-Signature har et tidsstempel t og v1, den heksadesimale HMAC-SHA256 av "<t>.<raw body>" med skjemaets webhook-hemmelighet, som vises én gang i Lobsite-dashbordet. Beregn samme verdi fra den rå bodyen, sammenlign i konstant tid, og avvis en t som er eldre enn 5 minutter.

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

Nye forsøk

Et 2xx-svar innen 10 sekunder regnes som levert. Alt annet prøves på nytt 5 ganger: etter 1 minutt, 5 minutter, 30 minutter, 2 timer og 12 timer. X-Lobsite-Delivery er den samme på tvers av forsøkene, så du kan hoppe over en leveranse du allerede har håndtert.

Ofte stilte spørsmål

Hvordan stopper jeg disse forespørslene?

Er nettstedet ditt, fjern webhook fra skjemaet i lobsite.toml og deploy. Er det ikke ditt, svar med en feil: hver innsending prøves 6 ganger totalt og forkastes så. Fortsetter de å komme, rapporter dem på siden Rapporter misbruk med verdien av X-Lobsite-Delivery, så ser vi på det.

Hvilke planer sender webhooker?

Webhooker er en del av Standard-planen. Nettsteder på gratisplanen får e-postvarsler i stedet. Se skjemadokumentasjonen.

Hvorfor får jeg den samme innsendingen to ganger?

Serveren din svarte for sakte eller med en feil første gang, så det ble prøvd på nytt. Hopp over leveranser med en X-Lobsite-Delivery du allerede har sett.

Andre user agents fra Lobsite