Struktura i analiza webhook zahtjeva
Webhook zahtjevi su automatizirane HTTP poruke koje poslužitelji šalju kada se dogodi određeni događaj. Za razliku od standardnih API poziva gdje klijent traži podatke, kod webhooka izvorna aplikacija šalje podatke izravno na vašu krajnju točku. Da biste uspješno integrirali i obradili ove dolazne podatke, morate točno razumjeti strukturu zahtjeva, što uključuje HTTP metodu, zaglavlja i tijelo poruke.
Prikupljanje i pregled ovih elemenata ključni su koraci u razvoju i održavanju integracija. Preglednik webhook zahtjeva omogućuje vam da zalijepite metodu, zaglavlja i tijelo snimljenog webhook zahtjeva kako biste analizirali njegov format i generirali cURL naredbu za lokalno testiranje.
Uloga zaglavlja u webhook komunikaciji
Zaglavlja (headers) prenose metapodatke koji su ključni za ispravno usmjeravanje i obradu webhooka. Ona definiraju vrstu sadržaja, identificiraju pošiljatelja i često nose sigurnosne podatke.
Prilikom unosa zaglavlja u ovaj alat primjenjuju se sljedeća pravila i ograničenja:
- Zaglavlja se unose u formatu jedno zaglavlje po retku, koristeći strukturu
Naziv: vrijednost. - Maksimalni dopušteni broj neopraznih redaka zaglavlja je 200. Ako prijeđete ovaj limit, alat prikazuje pogrešku: "Ima previše redaka zaglavlja. Držite zahtjev na 200 zaglavlja ili manje.".
- Ukupna duljina zaglavlja ograničena je na maksimalno 100.000 znakova. U slučaju prekoračenja, pojavljuje se poruka: "Zaglavlja su predugačka za ovaj alat. Ukloni nepovezane ili ponovljene vrijednosti.".
- Svaki redak mora biti ispravno formatiran. Ako unesete neispravan redak, alat javlja pogrešku: "
‹line›: Redak zaglavlja nije valjan. Koristi naziv: vrijednost.".
Formati tijela webhooka i obrada podataka
Tijelo (body) webhooka sadrži stvarni teret (payload) s informacijama o događaju. Najčešći formati u kojima se ovi podaci šalju su JSON i URL-kodirani podaci obrasca (URL-encoded form data).
Alat automatski prepoznaje i formatira ove tipove tijela radi lakše čitljivosti:
- JSON: Tijelo se analizira pomoću funkcije
JSON.parsei ponovno preslaguje. Zbog ovog procesa, izvorni razmaci, uvlake i raspored polja unutar JSON-a bit će izgubljeni u formatiranom prikazu. Ako tijelo izgleda kao JSON, ali sadrži sintaktičke greške, alat će ispisati pogrešku: "Tijelo izgleda kao JSON, ali se ne može analizirati.". - URL-kodirani podaci: Ako tijelo sadrži neispravne sekvence s postotkom, pojavit će se poruka o pogrešci: "Tijelo obrasca sadrži nepotpun postotak izlaza.".
- Ostali formati: Svi ostali tipovi tijela prikazuju se kao običan tekst bez dodatnog formatiranja.
Maksimalna duljina tijela koju alat može prihvatiti iznosi 1.000.000 znakova. Ako je uneseni tekst duži, sustav prikazuje pogrešku: "Tijelo je predugo za ovaj alat. Neka bude ispod 1.000.000 znakova.". Ako je tijelo zahtjeva potpuno prazno, u izlaznom polju prikazat će se oznaka "(prazno tijelo)".
Identifikacija potpisa i vremenskih oznaka
Sigurnost webhooka često se oslanja na provjeru autentičnosti pošiljatelja kako bi se osiguralo da zahtjev nije krivotvoren. Pošiljatelji obično u zaglavlja uključuju kriptografske potpise i vremenske oznake (timestamps) kako bi spriječili napade ponavljanjem.
Alat pretražuje unesena zaglavlja i pokušava identificirati uobičajena polja koja se koriste za ove svrhe. Prepoznavanje se temelji na uzorcima naziva kao što su signature, hmac, digest i uobičajeni nazivi za vremenske oznake.
Ako alat ne pronađe nijedno odgovarajuće zaglavlje, u izlaznom polju za polja potpisa prikazat će se poruka: "Nije pronađen zajednički potpis ili zaglavlje vremenske oznake web-dojavnika.".
Važno je naglasiti razliku između inspekcije i stvarne verifikacije. Pronalaženje polja potpisa ne dokazuje da je zahtjev autentičan — za stvarnu provjeru potrebna su pošiljateljeva pravila potpisivanja, tajna ili ključ te izvorni bajtovi zahtjeva. Alat ne izvodi HMAC izračune, ne izvršava kriptografske algoritme, ne uspoređuje izvorne bajtove payload-a, ne provjerava tajne ključeve, ne analizira vremenske prozore za zaštitu od ponavljanja niti provodi verifikacije specifične za pojedine pružatelje usluga.
Lokalno testiranje pomoću cURL naredbe
Nakon što analizirate strukturu zahtjeva, sljedeći korak u razvoju obično je lokalno testiranje vaše aplikacije. Alat olakšava ovaj proces tako što automatski generira cURL naredbu prilagođenu za izvršavanje u ljusci (shell-quoted).
Ova generirana naredba konfigurirana je tako da cilja fiksnu lokalnu adresu: http://localhost:3000/webhooks. Kopiranjem i pokretanjem te naredbe u vašem terminalu možete simulirati dolazak stvarnog webhooka na vaš lokalni razvojni poslužitelj, koristeći identičnu metodu, zaglavlja i tijelo koje ste unijeli za analizu.
Privatnost i lokalna obrada podataka
Prilikom rada s webhook zahtjevima, sigurnost vaših podataka i tokena unutar zaglavlja je prioritet. Vaš zalijepljeni zahtjev ostaje u vašem pregledniku. BroBroGo ga ne učitava niti sprema. Sva obrada, formatiranje i generiranje testnih naredbi odvija se lokalno na vašem uređaju.
Često postavljana pitanja (FAQ)
Može li ova stranica primiti povratni poziv webhooka uživo?
Ne. Zalijepite snimljeni zahtjev ovdje za pregled. Stranica ne stvara javnu krajnju točku, ne prima povratne pozive niti šalje generirani testni zahtjev.
Koje formate tijela web-dojavnika mogu provjeriti?
Otkrivaju se i formatiraju JSON i URL kodirana tijela obrazaca. Ostala tijela ostaju kao običan tekst tako da alat ne pogađa XML, višedijelni ili binarni sadržaj.
Dokazuje li pronalazak polja za potpis autentičnost zahtjeva?
Ne. Alat prikazuje samo potpis i povezana zaglavlja vremenske oznake. Prava provjera zahtijeva pošiljateljeva točna pravila potpisivanja, tajni ili javni ključ i izvorne bajtove zahtjeva.