Autor Zpráva
Návštěvník
Profil *
V jedné aplikaci jsem narazil na funkci, kde se členství (Normal, Silver, Gold, atp.) zjišťuje pomocí session. Tak se chci zeptat jestli je to normální ukládat tuto informaci do session. Jelikož je to veřejný kód tak by podle mého názoru stačilo nějakým programem přepsat tu hodnotu:

function MyAccess()
{
    /*_______________________________________________
    /| Detects access
    /| Guest = -1
    /| Free member = 0
    /| Silver member = 1
    /| Gold member = 2 and etc...
    /|_______________________________________________
    */

  if (C::SESS):
        if (isset($_SESSION['d']) && preg_match('/^[0-9]{1,3}$/', $_SESSION['d']))
      return $_SESSION['d'];
        else
      return -1;
}
    

Jak se to normálně správně řeší. Má se to řešit přes session, nebo se při každém novém načtení stránky musí načíst i data z uživatelských tabulek? Kdysi jsem četl názor, že do session není třeba ukládat nic víc než session id.
janbarasek
Profil
Návštěvník:
Sessions je jen v rámci serveru, takže je relativně bezpečné. Myslím, že tam stačí ukládat jenom to ID, ale jinak můžeš ukládat cokoli (pokud toho nebude moc, žere to akorát paměť serveru). V prohlížeči uživatele se uloží pak jen nějaký zamotaný řetězec znaků do cookies a server si pamatuje, k čemu ho má přiřadit. Může se však stát, že někdo ten klíč ukradne jinému uživateli a pak se za něj může přihlásit.

Co se týče bezpečnosti, tak je to asi jedno, co se týče rychlosti, tak bych radši ukládal více sessions a ušetříš si pokaždé dotaz na databázi, protože to všechno budeš mít v rámci operační paměti serveru.
Návštěvník
Profil *
janbarasek:
Tak já už zase zapoměl jak to funguje, ale už jsem udělal refresh :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: