Logovanie pod PHP

Programovacie jazyky, rady, poradňa...
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

Logovanie pod PHP

Príspevok od používateľa Shakal »

Chcem sa spytat:

Mam takyto jednoduchy login skript:

login.php

Kód: Vybrať všetko

session_start();
if (!isset($_SESSION["meno"])) { echo 'Ne si prihlaseny!'; }

if ($_POST["meno_z_formulara"]=="moj_login" and $_POST["heslo"]=="sdsdfDFSd") {
$_SESSION["meno"]="Moje meno";
}

if (isset($_POST["logout"])) session_destroy();

Na zaklade zaregistrovanej SESSION premennej s nazvom - "meno" zistujem ci clovek podstupil prihlasenie (a teda samotne zaregistrovanie premennej) alebo nie.

Otazka je - je zistovanie "nalogovania" na web, cez SESSION dostatocne bezpecne? - resp: staci to?

Moze mi utocnik nejak podstrcit premennu zaregistrovanu do SESSIONs a tak oblbnut celu web bez toho ze by podstupil overovanie?
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Príspevok od používateľa jorg22 »

SESSION sa zapisuje na strane servera a nahodne sa generuje jehonazov takze utocnik by musel poznat ten nazov a trafit ho nema sancu.
Takze ano je to bezpecne.
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

Príspevok od používateľa Shakal »

super!
vdaka.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Máš tam aj obmedzenú dĺžku platnosti session?
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

Príspevok od používateľa Shakal »

ano samozrejme.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

čo znamená obmedziť platnosť session? a ako sa to robí?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ide o to, že keď tam neobmedzíš čas, za aký je to sedenie aktuálne, tak sa raz prihlásiš a už nikdy sa nemusíš znovu prihlasovať. Ak je SID v url, tak stačí, aby niekto použil url aj s tým SID a bude tiež prihlásený. Ak je SID v cookies, tak stačí prekopírovať cookie. Preto je vhodné obmedziť, ako dlho je tá session aktívna (potom sa automaticky vymaže). Ak nevadí, že sa bude musieť užívateľ vždy prihlasovať môžeš platnosť cookie obmedziť na jedno sedenie (teda do vypnutia prehliadača).
Samozrejme by sa to dalo napr. vylepšiť tak, že by sa v SESSION uložila aj IP adresa, z ktorej sa ten používateľ prihlásil (čiastočne by to pomohlo)...
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

Príspevok od používateľa Shakal »

Kód: Vybrať všetko

/**

  * konstanta na zivotnost session cookie(v sekundach),

  * aktualne nastavena na 10 minut

  */

define('LIFETIME', 60*10);

/**

  * nastaveni zivotnosti session cookie, tim padem i zivotnosti session

  * po dobe LIFETIME se tedy uzivatel automaticky odhlasi

  */

session_set_cookie_params(LIFETIME);

/**

  * nastaveni zivotnosti doby zivotnosti session promennych na serveru

  * samozrejme nastavenych stejne jako zivotnosti cookie toz 10 minut

  * ovsem nastavuje se to v minutach, proto to deleni 60-kou

  */

session_cache_expire(ceil(LIFETIME/60));
Napísať odpoveď