NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Two-Factor for Laravel

Bezpečnostný model

  • Šifrovaný tajný kľúč v databáze — TOTP kľúč sa ukladá cez cast encrypted Laravelu (váš APP_KEY). Záložné kódy sa predvolene hašujú jednosmerne.
  • Skryté pri serializácii — stĺpce tajného kľúča, záložných kódov a posledného časového kroku sú v $hidden, takže return $user; ich nikdy neprezradí. two_factor_confirmed_at zostáva viditeľný pre stav v UI.
  • Porovnanie v konštantnom čase — každé porovnanie kódu ide cez ConstantTime z crypto-for-laravel; balík na porovnávanie nikdy nepoužíva ===, md5 ani sha1.
  • Atomická ochrana proti opakovaniu — zhodný časový krok sa zaberie jedinou operáciou check-and-set, vrátane kódu, ktorý potvrdil aktiváciu.
  • Atomicky jednorazové záložné kódy — spotreba znova načíta riadok pod transakčným zámkom, takže raz vylákaný kód sa nedá použiť dvakrát súbežne.
  • Čakajúca aktivácia nikdy neprejde — overenie splní len potvrdený druhý faktor.
  • Vstavaná ochrana proti hádaniu — predvolene zapnutá. Každý pokus sa atomicky započíta ešte pred overením, takže súbežné požiadavky nedokážu prepašovať ďalšie pokusy cez limit. Nastavením attempts na null použijete vlastný throttle middleware.
  • Kontrolovaná konfigurácia — digits, period, window, secret_length a attempts sa overujú za behu; chybné nastavenie vyhodí výnimku namiesto tichého oslabenia 2FA.
  • #[SensitiveParameter] na každom argumente s tajným kľúčom či kódom ich drží mimo stack trace; balík tajné kľúče ani kódy nikdy nezapisuje do logov.

Žiadna vlastnoručná kryptografia

HOTP/TOTP (RFC 4226 / 6238), URI otpauth://, striktný base32 kodek podľa RFC 4648, generátor tajných kľúčov z CSPRNG aj porovnanie v konštantnom čase pochádzajú z nášho crypto-for-laravel. Nič kryptografické sa tu neimplementuje nanovo — vynucuje to architektonický test. Tento balík zodpovedá za časť na strane Laravelu: aktiváciu, potvrdenie, replay guardy, záložné kódy, obmedzenie pokusov a šifrované stĺpce.

Hašované vs. šifrované záložné kódy

Režim hashed (predvolený) znamená, že výpis databázy ani uniknutý APP_KEY nikdy neprezradia platné záložné kódy. Režim encrypted umožní kódy zobraziť znova, za cenu vratnosti pomocou APP_KEY — pred zmenou si prečítajte sekciu Záložné kódy.

Čo ponecháva na vás

Balík zámerne nevykresľuje QR obrázky, neobsahuje prihlasovacie obrazovky, routy ani cookies a nevydáva ani neoveruje session či prístupové tokeny. Stará sa o tajný kľúč, kódy a záložné kódy — na notifikácie a auditný log využite jeho udalosti.

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

Odoslaní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.