Strukturering av webhook-forespørsler
En webhook er en asynkron kommunikasjonsmetode der en ekstern tjeneste sender data til din applikasjon via en HTTP-forespørsel. For å feilsøke eller integrere slike tjenester, må du forstå nøyaktig hvordan forespørselen er bygget opp. En typisk webhook-forespørsel består av en HTTP-metode, et sett med overskrifter (headers) og en brødtekst (body).
Når du mottar en webhook, er det avgjørende å fange opp den rå brødteksten nøyaktig slik den ble sendt fra avsenderen. Server-side rammeverk parser ofte innkommende data automatisk til objekter, noe som kan endre rekkefølgen på feltene eller fjerne usynlige tegn. Ved inspeksjon og feilsøking må du bruke den rå, uendrede teksten for å sikre at formateringen og eventuelle kryptografiske signaturer stemmer overens med det avsenderen faktisk produserte.
Inndata og grenser for inspeksjon
For å analysere en webhook-forespørsel, legger du inn de tre hovedkomponentene i verktøyet:
- Metode: Du velger HTTP-metoden som ble brukt for forespørselen fra en liste som inkluderer POST, PUT, PATCH, GET og DELETE.
- Overskrifter: Disse legges inn med én overskrift per linje i formatet "Navn: verdi". Verktøyet støtter maksimalt 200 ikke-tomme overskriftslinjer, og den totale lengden på overskriftene kan ikke overstige 100 000 tegn.
- Kropp: Her limer du inn den nøyaktige råteksten som er fanget før enhver parsing på serversiden. Maksimal tillatt lengde for brødteksten er 1 000 000 tegn.
Hvis inndataene bryter med disse grensene eller inneholder feil, vil verktøyet vise spesifikke feilmeldinger:
- Dersom du prøver å kjøre en tom analyse, vises feilmeldingen: "Lim inn minst én overskrift eller en forespørselstekst først."
- Hvis grensene overskrides, vil du se "Overskriftene er for lange for dette verktøyet. Fjern urelaterte eller gjentatte verdier." eller "Kroppen er for lang for dette verktøyet. Hold den under 1 000 000 tegn."
- Ved for mange linjer i overskriften vises: "Det er for mange overskriftslinjer. Hold forespørselen til 200 overskrifter eller færre."
- Dersom en linje ikke følger riktig struktur, returneres: "
‹line›: Overskriftslinje er ugyldig. Bruk Navn: verdi."
Tolking av utdata og formater
Når du klikker på "Inspiser forespørsel", analyserer verktøyet innholdet og genererer tre spesifikke utdata:
Formatert brødtekst
Verktøyet detekterer automatisk om brødteksten er strukturert som JSON eller URL-kodet skjemadata (URL-encoded form data). Hvis formatet gjenkjennes, blir innholdet strukturert og formatert for enklere lesing.
For JSON-kropper brukes JSON.parse for å tolke innholdet. Dette betyr at den opprinnelige rekkefølgen på feltene og eventuelle unødvendige mellomrom eller linjeskift vil gå tapt under formateringen. Hvis JSON-strukturen er ødelagt, vil du få feilmeldingen: "Kroppen ser ut som JSON, men kunne ikke analyseres.". Hvis du sender inn URL-kodet skjemadata som inneholder ufullstendige prosentkodinger, vil feilmeldingen "Skjemateksten inneholder en ufullstendig prosentvis escape." vises. Andre formater enn JSON og URL-kodet skjemadata forblir uendret som ren tekst. Hvis brødteksten er helt tom, viser utdatafeltet "(tom kropp)".
Signaturfelt
Verktøyet skanner overskriftene etter kjente mønstre som ofte brukes til sikkerhetsverifisering. Den ser etter navn som inneholder ord som signature, hmac, digest samt vanlige tidsstempeloverskrifter. Hvis ingen slike overskrifter blir funnet, vises teksten: "Ingen vanlig signatur eller webhook tidsstempeloverskrift ble funnet.".
Lokal cURL-test
For å forenkle lokal feilsøking genererer verktøyet en ferdig formatert, shell-quoted cURL-kommando. Denne kommandoen er fastsatt til å målrette seg mot den lokale adressen http://localhost:3000/webhooks. Du kan kopiere denne kommandoen direkte inn i terminalen din for å gjenskape og teste forespørselen mot din lokale utviklingsserver.
Signaturer og tidsstempler i webhooks
Mange webhook-leverandører sender med en kryptografisk signatur og et tidsstempel i HTTP-overskriftene. Dette gjøres for at mottakeren skal kunne verifisere at forespørselen faktisk kommer fra den oppgitte kilden, og at innholdet ikke har blitt endret underveis.
Det er viktig å skille mellom det å inspisere og det å verifisere en webhook-forespørsel. Dette verktøyet identifiserer kun om disse overskriftene eksisterer og viser dem i listen over signaturfelt. Verktøyet utfører ingen kryptografiske beregninger. Å finne et signaturfelt beviser ikke at forespørselen er autentisk – reell verifisering krever avsenderens signeringsregler, hemmelighet eller nøkkel, og de opprinnelige forespørselsbytene. Du må selv implementere denne verifiseringslogikken i din egen applikasjonskode ved å bruke den rå, uendrede brødteksten du mottar på endepunktet ditt.
Personvern og databehandling
Når du feilsøker webhooks, kan forespørslene inneholde sensitive data som identifikatorer, e-postadresser eller transaksjonsdetaljer.
Din innlimte forespørsel forblir i nettleseren din. BroBroGo laster ikke opp eller lagrer det. All prosessering, formatering og generering av cURL-kommandoer skjer lokalt på din egen maskin.
Ofte stilte spørsmål
Kan denne siden motta en live webhook-tilbakeringing?
Nei. Lim inn en fanget forespørsel her for inspeksjon. Siden oppretter ikke et offentlig endepunkt, mottar tilbakeringinger eller sender den genererte testforespørselen.
Hvilke webhook-kroppsformater kan jeg inspisere?
JSON og URL-kodede skjematekster blir oppdaget og formatert. Andre tekster forblir som ren tekst, slik at verktøyet ikke gjetter på XML, flerdelt eller binært innhold.
Beviser det å finne et signaturfelt at forespørselen er autentisk?
Nei. Verktøyet viser kun signatur og relaterte tidsstempeloverskrifter. Virkelig verifisering trenger avsenderens eksakte signeringsregler, hemmelig eller offentlig nøkkel, og de originale forespørselsbytene.