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 32 600×
Přečteno 25 801×
Přečteno 20 862×
Přečteno 19 506×
Přečteno 14 056×