Open source
Sentinel for Laravel
composer require roundly-consulting/sentinel-for-laravelPrehľad
Sentinel for Laravel vám povie, keď sa vaše dáta zmenili za chrbtom aplikácie, a zaručí, že každá požiadavka sa započíta len raz. Eloquent modely zapečatí kľúčovaným MAC alebo podpisom, odhalí každú zmenu vykonanú mimo aplikácie — v SQL konzole, hromadným update(), obnovou zálohy — a odmietne stavať na zmenenom riadku, kým zmenu niekto nepotvrdí s dôvodom. Okolo toho sú nástroje na integritu požiadaviek: idempotenčné kľúče, jednorazové nonce a URL a podpisy HTTP správ podľa RFC 9421. Natívny balík s licenciou MIT, postavený len na Laraveli a balíkoch Roundly Tier-0 package-toolkit, enums a crypto.
Čo získate
Pečate odhaľujúce zmeny
Pomenované, typované pečate na akomkoľvek Eloquent modeli, zapísané atomicky s každým zápisom a overiteľné kdekoľvek — s menami zmenených stĺpcov.
Zamietnuté do potvrdenia
Riadok zmenený mimo aplikácie sa nedá upraviť, kým niekto zmenu neprijme s dôvodom — zaznamená sa aj to, kto ju prijal.
Denník a externé kotvy
História každej udalosti pečatenia chránená MAC, zreťazené kontrolné body a publikovanie do externých kotiev — návrat zálohy sa prezradí.
Kruhy kľúčov a rotácia
Kľúče HMAC-SHA-256/384/512, Ed25519 a ECDSA v pomenovaných kruhoch s rotáciou, odvolaním, vyradením a importom kľúčov partnerov za behu.
Idempotenčné kľúče
Spracovanie Idempotency-Key pre HTTP routy, joby vo fronte aj programové volania — opakovanie dostane prvú odpoveď, nikdy druhú platbu.
Nonce a podpisy HTTP
Jednorazové nonce a podpísané URL, plus podpisy HTTP správ podľa RFC 9421 pre prichádzajúce aj odchádzajúce požiadavky.
Fasáda, DI alebo akcie
Jedna fasáda Sentinel, injektovateľný SentinelManager alebo jednoúčelové akcie — a nahrávací fake, ktorý zachováva produkčnú sémantiku.
Dokumentácia
Inštalácia
Inštalácia cez Composer, sprievodca sentinel:install, voľba typov morph kľúčov, migrácia, prvý kľúč a zapečatenie existujúcich riadkov.
Konfigurácia
Každý konfiguračný kľúč s predvolenou hodnotou a premennou env — kľúče a kruhy, pečatenie, overovanie, denník, idempotencia, nonce, podpisy a plán.
Čo odhalí
Čo Sentinel odhalí, proti akému útočníkovi, s externou kotvou aj bez nej — a čo zámerne negarantuje.
Deklarovanie pečatí
Deklarujte pomenované, typované pečate na modeli — builder, typy polí a odvodenie z castov, vypočítané hodnoty, znovupoužiteľné definície a chyby.
Fasáda Sentinel
Prehľad fasády Sentinel — handle for($model), ploché slovesá pečatí, operácie nad celým modelom a prístupy keys, ledger, idempotency, nonces a signatures.
DI a akcie
Bez fasády: injektujte SentinelManager alebo zavolajte jednu z 28 akcií — objekty požiadaviek, akcie s obyčajnými argumentmi a mapa metód na akcie.
Pečatenie a zápisy
Kedy sa riadky pečatia, ako sa zápis a pečať potvrdia atomicky, zápisy do zmeneného riadku, mazanie, pozastavenie a prepis save().
Overovanie
Overte jednu pečať, všetky pečate alebo viac modelov — výsledky, stavy a dôvody, poradie stavov, zmenené atribúty, overenie pri načítaní a skeny.
Potvrdzovanie zmien
Prijmite zmenu mimo aplikácie s dôvodom a aktérom, určte, kto to smie, zámerne odpečaťte a načítajte zmenený riadok na kontrolu.
Hromadné operácie
Skenujte, prepečaťte, vytvorte baseline a hromadne aktualizujte všetky riadky modelu — bez tichej legalizácie zmien, všetko alebo nič.
Denník, kontrolné body a kotvy
Denník len na pripájanie, zreťazené kontrolné body a externé kotvy, vďaka ktorým sa zmazaná či vrátená história prezradí — a ich overenie.
Middleware, pravidlo a scopes
Overte modely routy cez sentinel.verified, validujte vstup pravidlom IntactSeal, kontrolujte kolekcie cez verifySeals() a filtrujte podľa stavu pečate.
Idempotenčné kľúče
Spracovanie Idempotency-Key pre routy, programové behy pre joby a webhooky, middleware jobov Idempotent a makro klienta.
Nonce a jednorazové URL
Jednorazové tokeny viazané na účel a jednorazové podpísané URL — ukladá sa len hash a spotrebovanie je jeden atomický príkaz.
Podpisy HTTP správ
Overujte požiadavky partnerov podpísané podľa RFC 9421, podpisujte odchádzajúce volania a overujte odpovede — kľúče, profily, odmietnutia a voľby.
Správa kľúčov
Kruhy kľúčov, drivery a algoritmy; generovanie, import, rotácia, odvolanie a vyradenie kľúčov; stavy, uzly len na overovanie a import partnerov.
Príkazy a kontrola stavu
Každý príkaz sentinel:* s voľbami a návratovými kódmi, plán, ktorý sa zaregistruje sám, a kontrola stavu s desiatimi kontrolami.
Udalosti
Každá udalosť, ktorú Sentinel odosiela, kedy sa spustí a čo nesie — skalárny obsah bezpečný pre fronty a pomocníci na načítanie modelu.
Rozšírenie
Zapojte úložisko kľúčov v KMS alebo vlastnú kotvu a naviažte vlastné úložiská idempotencie a nonce, scope resolver či politiku potvrdenia.
Výnimky, stavy a enumy
Každá výnimka a kedy sa vyhodí, HTTP odpovede problem details, hodnoty stavov overenia a všetky enumy, ktoré Sentinel obsahuje.
Databázová schéma
Šesť tabuliek sentinel_, ich pripojenia a cudzie kľúče, modely na čítanie, factories, uchovávanie dát a databázové oprávnenia.
Kanonický formát
Zmrazený formát sentinel.seal/1: čo sa chráni MAC, ako sa normalizuje každý typ hodnoty, dokument pečate a značky polí.
Testovanie
Cez Sentinel::fake() naskriptujete stavy a overíte každé volanie, alebo spustite skutočné pečate v testoch s WithSentinelKeys.
Štandardy
Štandardy, ktoré Sentinel implementuje — HMAC, HKDF, JCS, EdDSA a ECDSA, RFC 9421, 9530, 9651 a 9457, správa kľúčov podľa NIST — a ako sú dokázané.
Požiadavky
PHP 8.4+ s ext-hash a ext-mbstring, Laravel 12 alebo 13 a SQLite, PostgreSQL alebo MySQL; ext-sodium pre kľúče Ed25519.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.