Mennyire biztonságos egy session-ben tárolni a felhasználói adatokat?
Sziasztok!
Van egy saját fejlesztésű kis cms rendszerem, amelynél a belépés során a $_SESSION globális tömbben tárolom le sikeresen bejelentkeztetett felhasználó usernev-ét. A rendszer úgy van kialakítva, hogy az adatbázis users táblájában mindössze egy admin nevű enum típusú mező értéke dönti el, hogy milyen jogosultsági szinten van az adott user.
Na, szóval, az lenne a kérdésem, hogy mennyire lenne biztonságos az, hogy ezt az értéket is eltárolom a $_SESSION tömbben? Így egy csomó lekérdezést meg lehetne spórolni ezzel a húzással. Vagy valahogy másképp kéne lekezelni?
Köszönöm előre is a hozzászólásokat!
PJ
■ Van egy saját fejlesztésű kis cms rendszerem, amelynél a belépés során a $_SESSION globális tömbben tárolom le sikeresen bejelentkeztetett felhasználó usernev-ét. A rendszer úgy van kialakítva, hogy az adatbázis users táblájában mindössze egy admin nevű enum típusú mező értéke dönti el, hogy milyen jogosultsági szinten van az adott user.
Na, szóval, az lenne a kérdésem, hogy mennyire lenne biztonságos az, hogy ezt az értéket is eltárolom a $_SESSION tömbben? Így egy csomó lekérdezést meg lehetne spórolni ezzel a húzással. Vagy valahogy másképp kéne lekezelni?
Köszönöm előre is a hozzászólásokat!
PJ
Nem probléma...
változó adatok
Nem biztos
Igy minden ilyen kétes funkció előtt megspórolom azt, hogy le kelljen kérdeznem azt, hogy valójában milyen jogosultsággal rendelkezik. Vagy szerinted tévúton járok? Te egy lekérdezés után hol tárolnád el ezt az adatot?
Így valóban...
Ennel a rendszernel mindössze néhány...
User:
- tud tartalmat beküldeni, amelynek a státusza alapértelmezetten publikálatlan, amíg egy admin ki nem engedi
- tud hozzászólni a fórum témákhoz, saját aláírása lehet, stb.
- a userek egymásnak tudnak közvetlen üzeneteket küldeni
Admin:
- publikussá tehet cikkeket, illetve írhat saját maga is, szerkeszthet, törölhet
- fórum témáknál hozzászólásokat szerkeszthet, moderálhat
Superuser:
- mindent tud, amit az admin
- felhasználóknak jogokat oszthat ki
- mentheti az adatbázist, illetve minden beállításhoz hozzáfér a rendszernél
Nos, amint látszik, nem egy nagy wasistdas, amit csináltam, viszont sokat tanultam közben, nekem ez volt az elsődleges cél. Ennél a rendszernél akkor hasznos lehet a $_SESSION tömbben tárolni, hogy melyik csoport tagja az adott felhasználó? Nyilván fennáll a veszély, hogy épp be van jelentkezve valaki admin-ként és épp elveszik ezt a jogát, de amíg ki nem lép, addig szabadon garázdálkodhat. Vagy maradjak a véleményem szerint lassabb verziónál és mindig kérdezzem le, hogy van-e joga az adott funkcióhoz?
-
1. megvárod míg kijelentkezik, v "lejár" a session :)
2. megszünteted a session-t (nálam okosabbak talán tudják, h ehhez elég-e a sessionöket tárolo mappából az adott session id-hez tartozo file-t törölni, ez esetben ezt lekérdezed az adatbázisból (a session táblából) és törlöd, így a felhasználó az oldal ujratöltésekor rögtön visszajut a belépőoldalra vagy máshova, ezt persze összekötheted bármilyen modosítással, így automatikusan müködne)
Legalábbis én így csinálnám, bár fogalmam sincs h ez működne is, ki kell probálni:)
üdv
BL