Forum » Programiranje » Php varen login
Php varen login
Volk| ::
Fantje, kako v php naret varen login?
Seje so bolj varne od cooki-jev(kao), pa vendar, z sejo ne moreš naredit "zapomni si me", ali pač?
Še obstaja kaj drugega, kot seje in cookie? Kaj pa kombinacija kakih "dodatnih" varoval pri preverjanju?
Kak nasvet?
Seje so bolj varne od cooki-jev(kao), pa vendar, z sejo ne moreš naredit "zapomni si me", ali pač?
Še obstaja kaj drugega, kot seje in cookie? Kaj pa kombinacija kakih "dodatnih" varoval pri preverjanju?
Kak nasvet?
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Trinitron ::
v sejo hraniš array('id'=>$user_id, 'password'=>$password_hash);
v cookie hraniš json_encode(array('id'=>$user_id, 'password'=>$password_hash));
v cookie hraniš json_encode(array('id'=>$user_id, 'password'=>$password_hash));
Ziga Dolhar ::
Jojme. Uporabniku (v kukiju) nikakor ne vračaš nobenih njegovih podatkov (niti reverzibilno kodiranih), kaj šele takih, ki v enaki obliki (user_id) obstajajo tudi v bazi.
Precej boš naredil že, če boš na strani (tudi login!) uporabljal SSL. Če to ni možno, pa si poglej, kako typo3 za login uporablja rsaauth in saltedpasswords - da že od klienta do serverja ne potujejo plain-text podatki.
Precej boš naredil že, če boš na strani (tudi login!) uporabljal SSL. Če to ni možno, pa si poglej, kako typo3 za login uporablja rsaauth in saltedpasswords - da že od klienta do serverja ne potujejo plain-text podatki.
https://dolhar.si/
technolog ::
v sejo hraniš array('id'=>$user_id, 'password'=>$password_hash);
v cookie hraniš json_encode(array('id'=>$user_id, 'password'=>$password_hash));
To je šala, kajne?
"Zapomni si me" narediš tako, da podaljšaš čas poteka session piškotku na recimo cirka eno leto.
Zgodovina sprememb…
- spremenil: technolog ()
Volk| ::
Kak lahko podaljšaš session-u, če se pa session kreira na serveru?
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
arjan_t ::
ja, stanje seje je na serverju. ampak da se ve kateremu uporabniku spada katera seja je pri klientu shranjen session ID (ponavadi cookie).
Baja ::
"Zapomni si me" narediš tako, da podaljšaš čas poteka session piškotku na recimo cirka eno leto.
lahko poveš kaj več informacij glede podaljšanja session cookie-ja? sem na hitro poskusil narediti en test glede tega, pa me odjavi ko zaprem/odprem browser.
drugače pa trenutno izvajam "remember me" tako, da za uporabnika ki zeli to funkcijo, generiram unique string, ga zapisem v bazo in v cookie in kasneje primerjam ta dva podatka. kot dodatno zaščito (v bistvu nevem če kaj pomaga :/ ) ob vsaki autologin prijavi zamenjam ta uniqe string.
lp
Baja ::
technolog ::
"Zapomni si me" narediš tako, da podaljšaš čas poteka session piškotku na recimo cirka eno leto.
lahko poveš kaj več informacij glede podaljšanja session cookie-ja? sem na hitro poskusil narediti en test glede tega, pa me odjavi ko zaprem/odprem browser.
drugače pa trenutno izvajam "remember me" tako, da za uporabnika ki zeli to funkcijo, generiram unique string, ga zapisem v bazo in v cookie in kasneje primerjam ta dva podatka. kot dodatno zaščito (v bistvu nevem če kaj pomaga :/ ) ob vsaki autologin prijavi zamenjam ta uniqe string.
lp
To je tudi OK. Če imaš tako že narejeno, ni razloga, da bi spreminjal.
Volk| ::
Mogoče ima kdo kak primer kako preverjat z ajaxom ali je login ok, oziroma ni ok?
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
t3hn0 ::
Mogoče ima kdo kak primer kako preverjat z ajaxom ali je login ok, oziroma ni ok?
Ce prav razumem ta zanima ce session velja pri ajax klicih? Glede na to da sessionid shrani kot cookie in je vezan na eno domeno...ja, bos videl isti session kot v fajlu iz katerega ga klices.
^.^
Volk| ::
Ne, mislil, sem skripto, ki ti javi, če nekdo vpiše napačne podatke, pri pravilnih pa te logina. V ajaxu sem novi pa se lovim.
Nekaj v TEM smislu. Jaz sicer ne uspem usposobit zadeve na moji strani. Gumb prijava ne trza.
Nekaj v TEM smislu. Jaz sicer ne uspem usposobit zadeve na moji strani. Gumb prijava ne trza.
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
technolog ::
Jah pošlješ po post, če je login uspešen, naj server vrne prazen dokument, če je napaka pa besedilo napake.
Ti potem z JS preveriš, če je string prazen in od tu delaš naprej.
Ti potem z JS preveriš, če je string prazen in od tu delaš naprej.
Baja ::
Ne, mislil, sem skripto, ki ti javi, če nekdo vpiše napačne podatke, pri pravilnih pa te logina. V ajaxu sem novi pa se lovim.
Nekaj v TEM smislu. Jaz sicer ne uspem usposobit zadeve na moji strani. Gumb prijava ne trza.
Z jquery-jem bi zgledalo nekako takole.
//index.php <script type="text/javascript"> $(document).ready(function(){ $('#submitLogin').click(function(e){ e.preventDefault(); $.ajax({ type: "POST", url: "ajax/check-login.php", data: $('#loginForm').serialize(), dataType: "xml"; success: function( xml ){ if ($('stat', xml) == 'login_ok'){ location.href = 'prijava_ok.php'; } else { location.href = 'prijava_not_ok.php'; } } }); }); }); </script> <form action="" method="post" id="loginForm"> <input type="text" name="loginName" /> <input type="password" name="loginPassw" /> <input type="submit" name="submit" id="submitLogin" value="Prijava" /> </form> // ajax/check-login.php $stat = ($_POST['loginName'] == 'admin' && $_POST['loginPassw'] == '1234') ? 'login_ok' : 'login_failed'; <xml><stat>'.$stat.'</stat></xml>
edit: kode nisem testiral, tako da jo beri bolj kot pseudo kodo, ampak če ni kakekga typo-ta bi načeloma morala delovati.
Zgodovina sprememb…
- spremenil: Baja ()
Volk| ::
Ok, bom sprobal drug teden.
Ni mi samo nekako jasna povezava med ajaxom in javascript. na prvi pogled to zgleda isto :D
Ni mi samo nekako jasna povezava med ajaxom in javascript. na prvi pogled to zgleda isto :D
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Baja ::
AJAX = Asynchronous JavaScript and XML
v bistvu z ajaxom kličeš neko stran/skripto in njen rezultat vrines v naloženo stran.
v zgornjem primeru bi recimo ob uspešnem loginu zamenjal obrazec za prijavo z podatki o prijavljenem uporabniku, seveda mores v xml dodati se tag user
lahko pa tudi vrnes html in vrines vse kaj ajax klic vrne. poglej docs.jquery.com za vse možnosti
v bistvu z ajaxom kličeš neko stran/skripto in njen rezultat vrines v naloženo stran.
v zgornjem primeru bi recimo ob uspešnem loginu zamenjal obrazec za prijavo z podatki o prijavljenem uporabniku, seveda mores v xml dodati se tag user
if ($('stat', xml) == 'login_ok'){ $('#loginForm').innerHTML( 'Pozdravljen ' + $('user', xml).text() ); } else { alert('login failed'); }
lahko pa tudi vrnes html in vrines vse kaj ajax klic vrne. poglej docs.jquery.com za vse možnosti
Zgodovina sprememb…
- spremenil: Baja ()
Volk| ::
Hvala za info. če se mi bo kaj zataknilo pa ti bom pisal.
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C# asp.NET web forma] Kam zgine cookie oz. zkj se izbriše?Oddelek: Programiranje | 1116 (930) | Morenov |
» | ASP.NET + C# vprašanjeOddelek: Programiranje | 2767 (1781) | Morenov |
» | [php, mysql] sortiranje izpisa iz bazeOddelek: Izdelava spletišč | 2662 (2181) | Binji |
» | unset cookieOddelek: Izdelava spletišč | 1858 (1665) | tomitza |
» | oop+php+sessionsOddelek: Izdelava spletišč | 2588 (55) | cahahopie |