[ 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
[ 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!