Coherta made in Denmark
Få en demo

Support Universe

Hvad er webhook-signaturvalidering?

Webhook-signaturvalidering er en sikkerhedsmetode, hvor du verificerer, at en indgående webhook faktisk kommer fra den afsender, du forventer, og at payloaden ikke er ændret undervejs. Det sker typisk ved at sammenligne en kryptografisk signatur i requesten med en signatur, du selv beregner ud fra en delt hemmelig nøgle.

Hvad består webhook-signaturvalidering af?

En webhook er i praksis et HTTP-kald fra et eksternt system til din endpoint-URL, når noget sker (fx “ny lead”, “betaling gennemført” eller “kunde opdateret”). Uden validering er din endpoint bare en offentlig URL, som alle i princippet kan forsøge at ramme. Signaturvalidering tilføjer et lag, der gør det meget sværere at forfalske requests.

Typisk består webhook-signaturvalidering af følgende komponenter:

  • En delt hemmelighed (secret): En nøgle, der kun kendes af afsenderen og dig. Den opbevares sikkert (fx som en miljøvariabel) og må aldrig hardcodes i kode eller deles i logs.
  • En signatur i requesten: Ofte i en HTTP-header (fx X-Signature eller lignende) og typisk genereret som HMAC (Hash-based Message Authentication Code).
  • Et “signing input”: Det data, der signeres. I bedste praksis er det den rå request body (præcis bytes), eventuelt kombineret med en timestamp.
  • En valideringsrutine hos modtageren: Din server genskaber signaturen ud fra den rå payload og secret og sammenligner den med afsenderens signatur.
  • Replay-beskyttelse: En timestamp og et accept-vindue (fx 5 minutter) forhindrer, at en opsnappet webhook kan gensendes senere.

Det centrale er integritet og autenticitet: Du vil vide, at data ikke er manipuleret, og at den kommer fra den rigtige afsender.

Hvordan fungerer webhook-signaturvalidering?

I et klassisk setup (HMAC) gør afsenderen følgende, når webhooks sendes:

  • Beregn en hash-baseret signatur (HMAC) over payloaden (og ofte en timestamp) ved hjælp af en secret.
  • Send webhooken til din endpoint med payload i body og signaturen i en header.

Når du modtager webhooken, gør du det spejlvendte:

  • Hent signaturen fra headeren og timestamp (hvis den findes).
  • Brug den rå request body (ikke et “re-serialized” JSON-objekt) som input til din egen HMAC-beregning.
  • Sammenlign din beregnede signatur med den modtagne signatur.
  • Afvis requesten (fx HTTP 401/403), hvis den ikke matcher, eller hvis timestamp er for gammel.

Et vigtigt implementeringspunkt i praksis er, at mange frameworks automatisk parser JSON-body til et objekt og kan ændre whitespace/ordning af felter. Hvis du signer “rå bytes”, men validerer på et reformateret JSON-objekt, vil signaturen fejle. Derfor skal du i mange stacks eksplicit have adgang til den rå body i valideringslaget.

Derudover bør signatursammenligning ske med en konstant-tids sammenligning (constant-time compare), så du ikke lækker information via timing-angreb, hvis en angriber tester signaturer systematisk.

Hvorfor er webhook-signaturvalidering vigtigt for B2B-virksomheder?

For B2B handler webhooks ofte om forretningskritiske flows: lead-routing, CRM-opdateringer, marketing automation, fakturering, adgangsstyring eller onboarding. Hvis en webhook kan spoofes, kan det give meget konkrete konsekvenser.

  • Datakvalitet i CRM og marketing: Falske eller manipulerede events kan oprette “spøgelsesleads”, ændre firmadata eller trigge automatiske flows, der spilder salgsressourcer.
  • Compliance og revisionsspor: Du får sværere ved at dokumentere, at data stammer fra legitime systemer, hvis du ikke validerer autenticitet.
  • Omdømme og leverancesikkerhed: Hvis automatiserede integrationer fejler eller misbruges, rammer det både interne teams og kundeoplevelsen.
  • Direkte økonomisk risiko: Webhooks kan udløse handlinger som opgraderinger, ordrestatus, kreditnotaer eller serviceaktivering.

Hvis du arbejder målrettet med automatiseret leadgenerering og databerigelse, er tillid til dine eventkilder afgørende. Derfor bør signaturvalidering ses som en standarddel af enhver webhook-integration – ikke som “nice to have”.

Hvordan bruges webhook-signaturvalidering i praksis?

I praksis bør du designe din webhook-modtagelse som et lille “sikkerhedsgate”, før data får lov at påvirke dine systemer. Her er de mest anvendelige principper, når du skal implementere det robust i en B2B-integration:

  • Valider signatur før du parser eller behandler payload: Afvis tidligt for at spare ressourcer og reducere angrebsfladen.
  • Log sikkert: Log ikke secrets, fulde signaturheaders eller persondata. Log fx event-id, timestamp, kilde og valideringsresultat.
  • Gør behandling idempotent: Mange leverandører gensender webhooks ved netværksfejl. Brug et event-id til at sikre, at samme event kun behandles én gang.
  • Indfør replay-beskyttelse: Kræv timestamp og afvis events uden for et snævert vindue, eller gem nonce/event-id og afvis dubletter.
  • Rotér secrets: Hav en plan for nøgle-rotation (fx acceptér både “gammel” og “ny” secret i en overgangsperiode).
  • Afgræns adgang: Overvej IP allowlisting, mTLS eller API gateway-regler som supplement, men ikke som erstatning for signaturvalidering.

Hvis webhooken fx opdaterer leads i dit marketing-/CRM-setup, bør du kombinere signaturvalidering med klare datakontrakter (hvilke felter forventes), skemavalidering og en “dead letter”-mekanisme til events, der ikke kan behandles.

Arbejder du med systemintegrationer og dataflows, kan det også være relevant at se, hvordan Coherta kan indgå i et mere kontrolleret lead-setup. Du kan fx læse om sådan virker Coherta og få et billede af, hvordan data kan struktureres og bruges mere systematisk i salgs- og marketingprocesser.

Og hvis webhooks indgår i en bredere integration, kan det være nyttigt at kende mulighederne for API-baseret integration. Se fx Cohertas API-overblik eller guiden til integration af Cohertas API for at forstå typiske integrationsmønstre og krav til datakvalitet.

Fordele og ulemper

  • Fordel: Højere sikkerhed med lav kompleksitet
    Signaturvalidering (HMAC) er relativt enkel at implementere og giver stærk beskyttelse mod manipulation og spoofing.
  • Fordel: Bedre driftsstabilitet
    Når du afviser ugyldige requests tidligt, reducerer du støj, fejl og “mystiske” dataproblemer i downstream-systemer.
  • Fordel: Stærkere datatillid i automatisering
    Automatiske flows (lead scoring, enrichment, routing) bliver mere robuste, når du kan stole på eventkilderne.
  • Ulempe: Kræver korrekt håndtering af rå request body
    Mange fejl opstår, fordi validering sker på en ændret JSON-repræsentation. Du skal sikre adgang til rå bytes.
  • Ulempe: Nøglehåndtering og rotation
    Secrets skal opbevares sikkert og roteres. Det kræver procesdisciplin og gerne understøttelse i jeres DevOps-setup.
  • Ulempe: Ikke en komplet sikkerhedsmodel alene
    Signaturvalidering bør kombineres med rate limiting, idempotens, input-validering og overvågning.

Typiske misforståelser

  • “HTTPS er nok.”
    HTTPS beskytter transporten mod aflytning og man-in-the-middle, men det beviser ikke, at afsenderen er den, du tror. Signaturen giver dig autenticitet og integritet.
  • “IP allowlisting gør signatur overflødig.”
    IP-adresser kan ændre sig (cloud), og allowlists kan være svære at vedligeholde. Desuden hjælper det ikke, hvis en angriber kan sende fra en “tilladt” kilde. Signaturvalidering er stadig central.
  • “Jeg kan bare hashe JSON-objektet efter parsing.”
    Parsing og re-serialisering kan ændre payloadens byte-repræsentation. Valider på rå body, ellers får du falske fejl (eller fristes til at slå validering fra).
  • “Hvis signaturen matcher, er payloaden ‘sikker’.”
    Signaturen siger, at payloaden er uændret og kommer fra den rigtige afsender, men den kan stadig indeholde uventede værdier. Du skal stadig lave skema- og forretningsvalidering.
  • “Replay er ikke et problem.”
    Uden timestamp/nonce kan en opsnappet webhook potentielt gensendes. For events der udløser handlinger (fx oprettelse/aktivering), er replay-beskyttelse afgørende.

FAQ

Hvilken signaturmetode bruges oftest til webhooks?

Den mest almindelige metode er HMAC (fx HMAC-SHA256), hvor afsender og modtager deler en secret. Nogle leverandører bruger også asymmetrisk kryptografi (public/private key), men HMAC er typisk standard, fordi det er hurtigt og let at implementere.

Hvor skal jeg placere signaturvalideringen i min arkitektur?

Placér den så tidligt som muligt: i din webhook-controller/handler eller i en gateway/middleware, før du skriver til database, køer eller CRM. Målet er at afvise ugyldige requests, før de får effekt i dine systemer.

Hvordan håndterer jeg retries og dubletter fra webhook-afsenderen?

Gør din behandling idempotent ved at gemme et unikt event-id og afvise eller ignorere dubletter. Det er normalt, at leverandører gensender samme webhook, hvis de ikke får en 2xx-respons hurtigt nok.

Hvad skal jeg gøre, hvis signaturen fejler sporadisk?

Det skyldes ofte, at du ikke validerer på den rå request body, eller at en proxy/gateway ændrer body (fx newline/encoding). Tjek også, om du bruger korrekt header, korrekt secret, og om timestamp-vinduet er for stramt i forhold til systemtid.

Er signaturvalidering relevant, hvis webhooken kun opdaterer “ikke-kritiske” data?

Ja, for i B2B bliver “ikke-kritiske” data hurtigt kritiske, når de påvirker segmentering, lead scoring og salgsprioritering. Selv små datamanipulationer kan skabe støj, forkerte KPIs og spildt salgsindsats.

Gør dine integrationer robuste – uden at gå på kompromis med leadflowet

Hvis du vil have stabile B2B-processer, er webhook-signaturvalidering et af de sikkerhedstiltag, der giver mest effekt for mindst kompleksitet. Når du kan stole på dine events, kan du trygt automatisere enrichment, routing og aktivering i dine salgs- og marketingflows.

Vil du bygge et mere systematisk lead-setup, hvor data flyder sikkert fra kilde til CRM og automation? Se Cohertas leadmotor, og få også styr på, hvem du egentlig sigter efter via din ideelle kundeprofil. Hvis du vil aktivere leads direkte i marketing automation, kan du desuden se mulighederne for leads til ActiveCampaign.