Session, cookie és JWT
Session cookie vagy JWT? Értsd meg, hol tárolódik az állapot, hogyan jut el a credential, és miért nem attól biztonságos egy rendszer, hogy JWT-t használ.
Röviden
A session egy szerver által értelmezett munkamenet, a cookie egy böngészős tárolási és továbbítási mechanizmus, a JWT pedig egy aláírt tokenformátum. Gyakran együtt használják őket, ezért könnyű a fogalmakat összemosni.
Mit jelent a session, cookie és jwt?
A session egy szerver által értelmezett munkamenet, a cookie egy böngészős tárolási és továbbítási mechanizmus, a JWT pedig egy aláírt tokenformátum. Gyakran együtt használják őket, ezért könnyű a fogalmakat összemosni.
Munkamenet-modellek
01
Login
02
Credential
03
Session / token
04
AuthZ
05
Lejárat
Hogyan működik a gyakorlatban?
Állapotful sessionnél a kliens tipikusan egy véletlen session azonosítót tart, miközben a szerver oldalon van a hozzá tartozó állapot. JWT esetén a token hordozhat claim-eket, amelyeket az aláírás ellenőrzése után a fogadó fél értelmez. Revocation, lejárat, kulcsrotáció és tárolás mind architekturális döntés.
- HttpOnly csökkenti, hogy JavaScript közvetlenül kiolvassa a cookie-t.
- Secure biztosítja, hogy a cookie HTTPS-en menjen.
- SameSite cross-site küldési viselkedést szabályoz.
- JWT aláírás nem ugyanaz, mint titkosítás; a payload gyakran olvasható.
Gyakorlati fejlesztői szemlélet
Ne technológiából indulj ki, hanem threat modelből. Böngészős first-party appnál sokszor a jól konfigurált cookie-alapú session egyszerű és robusztus. Több szolgáltatás és külön trust boundary más kompromisszumot indokolhat.
Gyakori hibák és félreértések
- JWT-be érzékeny titkot tenni azért, mert a token „kódolva” néz ki.
- Hosszú lejáratú tokent revocation stratégia nélkül használni.
- LocalStorage-t automatikusan biztonságosabbnak gondolni a cookie-nál.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy