---
title: "Model hrozieb — Webhooks for Laravel | Roundly"
description: "Pred čím balík chráni a ako — podvrh, opakovanie, zisťovanie endpointov, vyčerpanie zdrojov, SSRF, únik kľúčov — a čo zámerne nerieši."
url: https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel/model-hrozieb
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Webhooks for Laravel](https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel.md)

# Model hrozieb

| Hrozba | Obrana |
| --- | --- |
| Podvrhnuté prichádzajúce požiadavky | HMAC-SHA256 (alebo RFC 9421) nad id, časovou pečiatkou a surovým telom, overené cez Sentinel v konštantnom čase voči každému platnému kľúču; najviac 8 položiek a 4 KB na hlavičku. |
| Prehraté zachytené požiadavky | Tolerancia 5 minút, podpísané id doručenia deduplikované 7 dní (+ unikátny index), strážca odtlačku tela pre nepodpísané id, nonce RFC 9421 zaznamenané atomicky s uloženým doručením. |
| Rozdelenie jednej správy na viac | Podpísané id má prednosť pred akýmkoľvek Idempotency-Key; rovnaké id s iným telom sa odmietne. |
| Zisťovanie existujúcich endpointov | Neznáme, zmazané a vypnuté kľúče odpovedajú rovnakou 404; kľúče nesú približne 190 bitov; neznáme kľúče nevyvolajú udalosť. |
| Vyčerpanie zdrojov na prichádzajúcej trase | 413 a 415 pred akýmkoľvek MAC, strážca odmietnutí na endpoint a IP, limit doručení na endpoint, spracovanie len vo fronte — a limit tela na webovom serveri pre prvé čítanie. |
| Príjemca odpovedá nekonečným telom | Číta sa len do outbound.max\_response\_bytes so zapnutou aj vypnutou ochranou, v rámci 10 s; zaznamená sa response\_truncated. |
| Nedôveryhodný obsah | JSON len do polí, hĺbka ≤ 64; žiadne unserialize, eval ani extract; sanitizér pred uložením. |
| Únik tajných kľúčov | Šifrované v pokoji, skryté, zobrazené raz, skryté v DTO, #\[SensitiveParameter\], nikdy v udalostiach, logoch, resources, about ani webhooks:endpoints; vymazané pri zmazaní. |
| SSRF a DNS rebinding | Ochrana Safe Fetch pri uložení aj pri každom kroku: len https, každá preložená adresa verejná, hostitelia aplikácie blokovaní, spojenie pripnuté na overené adresy, bez proxy, presmerovania vypnuté alebo znova overené. |
| Podvrhnutie a injekcia hlavičiek | Názvy a hodnoty vlastných hlavičiek sa overujú; rámcové, podpisové a proxy hlavičky sa nikdy nedajú nastaviť. |
| Búrky opakovaní | Exponenciálny odstup s rozptylom, rešpektovaný Retry-After, obmedzenie na endpoint, automatické vypnutie. |

## Čo balík nerieši

- Výmena riadkov niekým s prístupom na zápis do databázy — encrypted cast nie je viazaný na riadok, takže kto môže zapisovať do databázy, môže skopírovať šifrovaný kľúč jedného endpointu k inému.
- Kompromitovaný odosielateľ alebo príjemca — kto má tajný kľúč, vie podpisovať.
- Rozdiel hodín — odosielatelia aj príjemcovia potrebujú NTP; toleranciu môžete nastaviť pre každý endpoint.
- Výstupná proxy pre celú aplikáciu — ochrana obchádza proxy z prostredia; s WEBHOOKS\_SSRF\_GUARD=off neexistuje žiadna ochrana cieľov (limit odpovede stále platí).
- Zdieľané IP klientov — za load balancerom alebo CDN bez dôveryhodných proxy môžu chybné požiadavky cudzieho na minútu obmedziť skutočného odosielateľa.
- Listenery WebhookReceived vo fronte — ukladajú sanitizovaný obsah do frontu nešifrovaný.
- Poradie — medzi doručeniami na jeden endpoint nie je zaručené; príjemcovia radia podľa časovej pečiatky v obálke.
- Obmedzenie odosielania na endpoint s úložiskom v pamäti platí len v rámci procesu.

## Výnimky

V RoundlyConsulting\\Webhooks\\Exceptions, rozširujú WebhooksException (RuntimeException) a majú preložené správy. Konfiguračné hodnoty, ktoré sa nedajú načítať, vyhodia InvalidConfigurationException z package-toolkit:

| Výnimka | Vyhodí sa, keď |
| --- | --- |
| `EndpointNotFoundException` | find() nenájde; prístup obmedzený na vlastníka dostane cudzí endpoint alebo doručenie. |
| `EndpointNotAcceptingException` | send(), ping(), redeliver() alebo redeliverFailed() na vypnutý endpoint, send() na endpoint bez odberu — reason(): disabled alebo not\_subscribed. |
| `InvalidEndpointException` | Chybná URL, vlastná hlavička, zoznam odberov, importovaný tajný kľúč alebo voľba. |
| `InvalidEventTypeException` | Chybný typ udalosti alebo typ mimo outbound.event\_types. |
| `PayloadTooLargeException` | Zakódované odchádzajúce telo nad outbound.max\_payload\_bytes. |
| `PayloadPrunedException` | Replay alebo opätovné doručenie doručenia, ktorého telo odstránila retencia. |
| `DeliveryInProgressException` | Replay doručenia, ktoré sa práve spracúva; opätovné doručenie takého, ktoré je ešte pending, sending alebo retrying. |
| `DestinationBlockedException` | Ochrana pred SSRF odmietne odchádzajúcu URL pri uložení — reason(), blockedBy(), unresolved(). |
| `WebhookSignatureException` | Schéma odmietne požiadavku — reason(): RejectionReason; because() pre vlastné schémy. |
| `UnknownSchemeException · UnknownHandlerException` | Neregistrovaný názov alebo alias, prípadne trieda, ktorá nie je schémou ani handlerom. |
| `SecretRotationException` | Prechodné obdobie v minulosti alebo dlhšie ako secrets.max\_grace\_seconds. |
| `SigningUnavailableException` | Počas pokusu pre endpoint, ktorého schéma nevie podpisovať — zachytí sa: doručenie zlyhá so signing. |
| `PayloadSanitizerException` | Sanitizér vyhodil výnimku (odpoveď 500 sanitizer\_failed). |
| `InvalidWebhooksConfigurationException` | Konfiguračný kľúč s triedou neukazuje na implementáciu; vlastník, ktorého kľúč nezodpovedá webhooks.key\_type. |

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel.md)
