Login class biztonsági felmérés
2011-09-25T20:29:45+02:00
2011-09-27T16:33:51+02:00
2022-06-29T09:05:29+02:00
  • sessionben elvan tárolva a felhasználónév és hash!

    De ha megakarom tudni a többi adatát, akkor minden fájl legelején újra kell olvasnom! ezért mentemttem eddig a row adatokat globálisba. Most azzal próbálkoznék, hogy simán meghagyom változóba és valahogy azt alkalamzom!

    Valami oylasmit akarok ,hogy osztályban ellenorzes az true vagy false
    és getUser pedig lekéri az adatokat! amit továbbít!
    Mutasd a teljes hozzászólást!
  • Ezeket az adatokat sessionben illik tárolni nem globális változóként. Az idézett kódodban nem szerepelt a $GLOBALS csak $UNAME (!)
    Mutasd a teljes hozzászólást!
  • Tehát ha $GLOBALS['UNAME'] = $row; sort beadom az miért nem javasolt?

    Így szeretném azt elérni, hogy mindig kitudjam olvasni az adott felhasználó dolgait! Vagy esetleg csak hagyjam sima változóként??
    Mutasd a teljes hozzászólást!
  • Ennek ellenere sem jo otlet globalis valtozok hasznalata. Ha meg bonyolitani akarod a dolgot, ip cimet is ellenorizhetsz, valamint x ido inaktivitas utan leptesd ki a felhasznalot.
    Mutasd a teljes hozzászólást!
  • *szerkesztve*
    Rájöttem ,hogy nem értetted mire is van ez!

    Minden fájl elején meghívódik a funkció, tehát a globális változó mindenhol elérhető!

    Az ellenörzés csak akkor hajtódik végre, ha létezik felhasználónév és hash session.

    Szükséges mind a 2 session, mivel a felhasználó adott ideiglenes hashét olvassa ki!

    A globális változóba mysql lekérést ment!

    Tehát amit te írtál egyik sem valós hiba!

    Eddig tökéletesen működik.

    Üdv
    Mutasd a teljes hozzászólást!
  • Semennyire. Globális változó. eleve rossz, egy csomó helyen nem is érhető el. És ha nem létezik azt nem if()-el hanem isset()-el kellene ellenőrizni. És ha nem tömb és nincs neki 'felhasznalonev' indexe? Helyből két hiba. Minek ez a két session? teljesen felesleges. Sinán elég egy session amiben tárolsz egy egyedi azonosítót amit mindig frissítesz DB-ben ha már nagyon bonyolító típus vagy. A sessionben egy osztály egy példányát illene letárolni amit instanceof-al vagy is_a()-val ellenőrizhetsz le. Ez csak javaslat, de az eddigi megoldásod szerintem nagyon nem jó.
    Mutasd a teljes hozzászólást!
  • Üdv

    Írtam a minap egy osztály fájlt. A lényege, hogy ellenőrzéssel képes legyen egyes dolgok elágazás szerinti megjelenítésére. Lényegében azt szeretném megtudakolni, hogy mennyire biztonságos ez. Nem szeretnék most google linkeket, olvastam már weblaboros munkamenetkezelésről szóló cikket.

    Miből áll?
    Login osztály
    ellenorzes funkció
    loginSession funkció
    logoutSession funkció

    A login session létrehoz két "titkosított" nevű session-t. l_uname és s_shashs illetve az adatbázisban az adott felhasználó hash paraméterének megadja a generált ideiglenes hash-t.

    ellenorzes funkció, unseteli a UNAME globalis változót. Ezek után leellenőrzi, hogy a két session van-e, ha van akkor leellenőrzi, hogy a hash megegyezik-e az adatbázisban szereplő hashel. Ha megegyezik, akkor a kiolvasott adatokat egy golbális változóba tárolja, ezek után egy elágazás így néz ki:


    if($UNAME) { echo 'jelenlegi felhasználó neve:' . $UNAME['felhasznalonev']; }

    Vagyis, ha be van jelentkezve, akkor megmutatja a nevét.

    Kérdésem: Mennyire biztonságos ez a kis osztály, iletve munkamenet? Van-e olyan amivel még bővítsem?

    A válaszokat előre is köszönöm!

    Üdv, Lalesz
    Mutasd a teljes hozzászólást!
abcd