[ NisamLepAlSamGlup @ 01.03.2007. 20:52 ] @
radim na sajtu na kome cu imati registraciju korisnika. Interesuje me sta vi predlazete kao resenje, cookie, session, https ili nesto jos |
[ NisamLepAlSamGlup @ 01.03.2007. 20:52 ] @
[ Jbyn4e @ 02.03.2007. 07:52 ] @
Brkas pojmove. Sa strane php-a treba ti ili cookies ili session (preporucljivo je session), a da li ces koristiti http ili https je stvar toga kakav server imas (da li onaj sa sertifikatom tj. ssl i zelis da ti se kriptuju podaci od korisnika do tvog servera ili bez enkripcije...
Ako nemas server koji je sa ssl-om, ne znam kako ces ga upotrebiti kad nista ne slusa na portu 443 (valjda taj bese)... [ NisamLepAlSamGlup @ 02.03.2007. 13:43 ] @
web server je sa sertifikatom, dakle https. Pitanje je samo sta je prakticnije (za sta treba manje vremena) za implementaciju.
[ zrnoo @ 03.03.2007. 19:04 ] @
evo ti jednog malog primera (dela) koda sa - session, (znaci ne cookies)...ovo ti je iz glave - pa malo proveri skriptu tj njen deo !
Prvo provera Code: session_start(); if (isset($HTTP_POST_VARS['korisnik']) && isset($HTTP_POST_VARS['lozinka'])) { // Ukoliko korisnik zeli da se uloguje $korisnik = $HTTP_POST_VARS['korisnik']; $lozinka = $HTTP_POST_VARS['lozinka']; mysql_select_db($database, $con); $query = "select * from korisnici where user='$korisnik' and pass='$lozinka'"; $result = mysql_query($query, $con); if (mysql_num_rows($result) >0 ) { // ukoliko u bazi postoji registrovan korisnik $HTTP_SESSION_VARS['valid_user'] = $korisnik; } } ispis i prolaz dalje Code: if (isset($HTTP_SESSION_VARS['valid_user'])) { echo 'Ulogovani ste kao:<strong> '.$HTTP_SESSION_VARS['valid_user'].' </strong><br />; echo '<a href="members.php">Ulaz samo za clanove</a><br />'; } else { if (isset($korisnik)) { // Ukoliko ima problem sa logovanjem echo 'Korisnik i Lozinka se nepoklapaju.<br />Pokušajte ponovo.<br /><br />'; } pozz [Ovu poruku je menjao zrnoo dana 03.03.2007. u 20:15 GMT+1] [Ovu poruku je menjao zrnoo dana 03.03.2007. u 20:16 GMT+1] [ Jbyn4e @ 04.03.2007. 09:00 ] @
Primer iz glave je los. Zasto? Prvo, selektuje sve iz tabele (sta ako tabela ima puno polja, sto usporavati bazu, kad ti treba samo jedan podatak?), a drugo ostavlja mogucost sql injectiona kod lozinke. Necu to objasnjavati, ali bih ja sql upit napravio ovako:
Code: select pass from korisnici where user='$korisnik' A onda proveravao da li je pass iz baze jednak sa pass-om iz post polja. A sa strane http-a i https-a je isto sto se tice implementacije ako isti server radi i na portu za http i za https - podrska za php je u oba slucaja identicna, kriptuje se veza izmedju klijenta i servera, ne servera i php-a. Korisnik ce biti obavesten o sertifikatu ako je https a nece ako je http. [ zrnoo @ 04.03.2007. 13:02 ] @
dobro, sa jedne strane se i slazem ali sa druge ne...ako neplanira da ima neki ogroman broj korisnika (do par hiljada ce raditi maltene istom brznom), ovako mu je lakse ako zeli da kasnije ispisuje i ostale podatke o datom korisniku, nego da pravi novi upit.... al' dobro...to je njegov izbor!! :))
and then was i light! :) [ NisamLepAlSamGlup @ 04.03.2007. 13:51 ] @
Hvala
[ sale83 @ 04.03.2007. 20:20 ] @
Citat: Jbyn4e: a drugo ostavlja mogucost sql injectiona kod lozinke. Necu to objasnjavati, ali bih ja sql upit napravio ovako: Code: select pass from korisnici where user='$korisnik' Kako si ti zakljucio da njegov SQL ostavlja mogucnost za SQL injection a tvoj je navodno siguran ? A da Najvise mi se svidja ono ostavlja mogucnost SQL injection kod lozinke :) A sta je sa username ??? Prvo ako je http://au3.php.net/magic_quotes On onda je gotovo nemoguce izvristi SQL injection na njegovom SQL-u Ako je magic_quotes Off (redak slucaj) PHP 3.x.x By default Off Od PHP 4.x.x + By default ON Onda je moguce izmenuti i TVOJ i NJEGOV SQL samo nigde nije moguce videti rezultat ali je uvek se mozes ulogovati. Poz sale [ Jbyn4e @ 05.03.2007. 08:56 ] @
Sale, gde sam ja rekao da je moj siguran kod? Naravno da to ostavlja i dalje mogucnost sql injection-a, ali manje nego na prvi nacin. Ja bih naravno prvo uradio jedan addslashes i ereg_replace (ako je potrebno, gledano sa strane magic_quotes koje si napisao), ali to nije bila tema. Drugo, namerno sam napisao da to necu objasnjavati bas zbog mogucnosti sql injectiona jer onda moram i da pisem kako se zastititi od istog, a nemam vremena za to...
Sve u svemu, polako, naucice! Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|