Odpovídáte na názor ke článku PHP sessions v databázi, šifrovaně.
No už delší čas to dělám tak, že session nikam neukládám. Session je řetězec, který si na sobě nese všechny důležité informace, jako userid, platnost, efektivni uroven opravneni a dalsi informace zabalene v bináru, podepsané přes nějaký salt a HMAC-SHA256 a to celé Base64. Pokud bych potřeboval skrýt údaje v session, pak ji mohu ještě AESem zašifrovat (a protože každá session má jiný rozsah platnosti, bude každý řetězec jiný rozsypaný čaj.
Samotná session má platnost nějakou krátkou dobu, třeba 15min, nebo hodinu a rozpoznají ji všechni komponenty, kde se používá, aniž by si musely ta data předávat. Klient (nebo prostřednictvím serveru) je třeba session občas prodloužit, aby nevypršela (změní se ten řetězec).
Nevýhodou těchto session je, že se nedají zneplatnit před vypršením, proto se platnost udržuje krátká.
Pro dlouhodobé session se používá refresh token, který se dá použít k vytvoření session. Tyto token lze udržovat v databázi, není k ním potřeba tak často přistupovat (jen když vyprší původní session).
Celý to je ve shodě se systémem OAuth 2.0
Tomáš je autorem několika více či méně známých projektů jak z oblasti operačních systémů, tak internetu. V současnosti samozvaný expert na Linux, Bash, PHP a MySQL.
Přečteno 25 946×
Přečteno 23 975×
Přečteno 19 499×
Přečteno 18 283×
Přečteno 12 887×