Autor | Zpráva | ||
---|---|---|---|
Honzík_ Profil * |
#1 · Zasláno: 19. 7. 2008, 14:24:44
Mám seznam uživatelů a v tabulce v databázi je u každého uložené jaké má oprávnění, tj. co se mu na webu zobrazí a co ne.
Když si při přihlášení uživatele načtu z databáze jeho oprávnění, uložím ho do session. Následně si skripty z té session čtou jaké má ten uživatel oprávnění a podle toho dělají buď to nebo ono. Je to bezpečné? |
||
Str4wberry Profil |
#2 · Zasláno: 19. 7. 2008, 15:20:24
Ano.
|
||
DaveLister Profil |
#3 · Zasláno: 19. 7. 2008, 16:53:35
Session se okládaní na serveru, uživateli se odešle pouze cookie s ID session. Takže není žadný způsob jak by uživatel moh změnit data, která jsou uložena v jeho session
|
||
Joker Profil |
#4 · Zasláno: 19. 7. 2008, 17:58:36
Honzík_
Samotná data relace (session) se udržují v souboru na serveru a klient se k nim vůbec nedostane (má jen session ID), takže co se týká manipulace daty s tímhle způsobem, je to poměrně bezpečné. Je jen potřeba dávat pozor na možnost "nabourat" cizí relaci tím, že použiju něčí session ID. Návštěvníci jsou schopní se třeba přihlásit na web a potom poslat někomu e-mailem či na ICQ odkaz, který obsahuje i phpsessid=... Ve chvíli, kdy dotyčný ten odkaz použije, mohl by převzít tu cizí relaci. |
||
DaveLister Profil |
#5 · Zasláno: 19. 7. 2008, 18:05:55
Předávání phpsesid jako parametr GET je ale na většině serverů zakázáno a pro předávání se používa cookie, což je bezpečné ne?
|
||
Leo Profil |
#6 · Zasláno: 19. 7. 2008, 18:12:33
Jeste podotknu, ze zalezi na tom, kde mate session data na serveru umistena. Pokud vam vypis session adresare vrati /tmp, pak je spolecny s ostatnimi projekty na stejnem webserveru a to moc bezpecne neni, Leo
|
||
Radim Hejhal Profil |
#7 · Zasláno: 19. 7. 2008, 19:04:59
Joker
A jak se takovému převzetí bránit? Ukládání sušenek je jasný, ale zajímá mě jak to řešit u těch, kteří mají sušenky zakázaný. Napadá mě ukládat si to session i IP adresu, ale ta to nemusí vždy vyřešit.. |
||
Joker Profil |
#8 · Zasláno: 19. 7. 2008, 19:25:31
Radim Hejhal
Dají se proti tomu dělat různé věci, třeba regenerovat session ID při každém přihlášení (tzn. že když se uživatel odhlásí a přihlásí, dostane nové session ID, ne že používá to samé třeba X měsíců), kontrolovat aktivní relace proti databázi a podobně |
||
tiso Profil |
#9 · Zasláno: 19. 7. 2008, 20:12:21
Joker - už si niekde videl používanie toho istého session ID tým istým človekom po odhlásení a prihlásení?
|
||
Leo Profil |
#10 · Zasláno: 19. 7. 2008, 21:06:02
"ale zajímá mě jak to řešit u těch, kteří mají sušenky zakázaný"
Nijak. Napsat mu ze bez cookies to nefunguje. Leo |
||
Radim Hejhal Profil |
#11 · Zasláno: 19. 7. 2008, 21:59:37
Leo
... a že stránky jsou optimalizovány pro rozlišení 1680×1050 :oD Alespoň pro normální, krátkodobé přihlášení bych třeba rád nechal lidem nastavení jaké chtějí. A cookies vyžadoval teprve pro dlouhodobé přihlášení. Takže bych si představoval pro návštěvníky s povolenými sušenkami uložit session ID do nich a třeba každé dva (tři, sedm) dny vygenerovat nové ID. A pro návštěvníky s dietou pak umístit session ID do URL a do session navíc umístit a na každé stránce kontrolovat informace o IP a prohlížeči ($_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT']) a ID regenerovat každou hodinu (dvě, čtvrt). V tomhle případě by imho ani databáze nemohla přinést nějaké vylepšení. Je to jenom moje myšlenková konstrukce, prosím opravte mě, pokud se pletu nebo to jde udělat líp. |
||
DoubleThink Profil * |
#12 · Zasláno: 19. 7. 2008, 22:01:53
Předávání phpsesid jako parametr GET je ale na většině serverů zakázáno
Tvrdíš, že většina hostingů má nastaveno session.use_only_cookies = 1. Za sebe říkám, že žádný takový neznám. |
||
Leo Profil |
#13 · Zasláno: 19. 7. 2008, 22:05:33
"... a že stránky jsou optimalizovány pro rozlišení 1680×1050 :oD"
To srovnavate nesrovnatelne. Verte, ze ostatni zpusoby (mimo cookie) prenaseni session id nejsou prakticky pouzitelne. Leo |
||
Radim Hejhal Profil |
#14 · Zasláno: 19. 7. 2008, 22:13:58
Dobrá, nikdy jsem to do URL nevkládal, ale pořád jsem žil v domnění, že to nějak nepříliš složitě jde...
|
||
srigi Profil |
#15 · Zasláno: 19. 7. 2008, 22:52:25
Předávání phpsesid jako parametr GET je ale na většině serverů zakázáno a pro předávání se používa cookie, což je bezpečné ne?
Musim ta sklamat, ale nie je to 100% bezpecne. Cookie sa da ukradnut bud cez bezpecnostnu dieru v aplikacii (XSS exploitovanie) ale aj hardcorovovesim sposobom. |
||
Leo Profil |
#16 · Zasláno: 20. 7. 2008, 08:57:35
"Cookie sa da ukradnut bud cez bezpecnostnu dieru v aplikacii (XSS exploitovanie) ale aj hardcorovovesim sposobom."
Stoprocentne bezpecne neni nic. Ovsem jine zusoby predavani session id nez cookie jsou jeste horsi, Leo |
||
joe Profil |
#17 · Zasláno: 20. 7. 2008, 11:56:54
Chránit před ukradením session id by se dalo například generováním nějakého hashe, který by se přidal ke všem odkazům.
|
||
Časová prodleva: 16 let
|
0