Logovanje - cookies i sessions

2

Logovanje - cookies i sessions

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

addslashes() ti nije dobra zastita od injectionsa, proguglaj malo i videces dosta je pisano na tu temu.

Ni jedan korisnik ne treba da zna svoju hashovanu lozinku, on i dalje ukucava lozinku koju je naveo pri registraciji, dok je ti, dok obradjujes podatke hashujes. Moras da shvatis da kriptovanje i hashovanje nije ista stvar. Kad nesto kriptujes - to moze da se dekriptuje, kad nesto hashujes, povratka nema, jer hashovanje koristi drugaciji algoritam on koristi neke sinusne vrednosti, tako da vise razlicith karaltera kad se hashuju mogu imati isti rezultat.

Vise o tome ovde, pogledaj naslove Šta je to jednosmerna funkcija i Važnost jednosmjerne funkcije u kriptografiji kao i o samom Hashu...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Ostala su još dva pitanja?

Kad koristim mysql_real_escape_string da li mi treba addslashes i koja se pre koristi?
Predpostavljam da, ako se koristi, prvo ide mysql_real_escape_string.

Kojom funkcijom da odvojim karaktere i znakove koje ne želim u korisničkim imenima?
Želim samo brojeve, slova i par znakova, sve ostalo želim da isključim (=, €, $, /, \, >, <...)



offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Ne treba ti addslashes uopste, koristi samo mysql_real_escape_string().

Evo koda za ovo drugo, pisao sam ga iz glave, mozda nece raditi, ali ako ne radi, imas osnovu, pa ga samo malo prepravi..

$valid = preg_match("/^[a-zA-Z0-9]$/",$uname); // ovo ti je samo za slova i projeve, u sledeci primer cu da ubacim i jedan znak(_), pa ti posle mozes da dodajes i druge, ovo je cisto da vidis kako funkcionise.. $valid = preg_match("/^[a-zA-Z0-9_]$/",$uname); // e sada kad bi hteo da ogranicis ime na minim 3 a maximum 15 karaktera, uradio bi ovako nesto $valid = preg_match("/^[a-zA-Z0-9_]{3,15}$/",$uname); if(!$valid) {    echo "Korisnicko ime nije validno"; } else {    ... }

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Hvala.
Sad nemam vremena, a posle ću sve to da probam.

Nisi trebao da pišeš objašnjenje, samo mi daš funkciju i ja bi se snašao.

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

heheh, isao sam nekom drugom logikom, ako ti dam link ka preg_match i kazem da tu moras da koristis regularne izraze - onda bi posle mozda morao jos i reg. exp. da ti objasnjavam Wink Smile

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

@bobby
Sto se tice provaljivanja u bazu, mislim da je svejedno hoces li imati passworde cleantext ili hashovanu.Ona je pukla.

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Posle godinu dana ja nastavljam sa ovim. Da ne otvram novi topic pitanja ću postavljati ovde jer je dosta toga već rečeno, a neka će bit vezana za već postojeće postove.

Kod registracije novih korisnika da li treba da koristim mysql_real_escape_string, ako prethodno koristim preg_match() i unutar korisničkog imena i lozinke zabranim sve osim slova i brojeva?

Da li mi uopšte treba sql injection zaštita kod upitnika koji upisuju podatke u bazu?

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Naravno, gledaj da sve sto je vezano za bazu, a ne saljes direktno ti iz koda ima zastitu od sqlInjection-a.

znaci, ako sam pises neki query, i on stoji fixan u kodu, onda nema potrebe za sqlInj zastitom, ali ako neko drugi moze da utice na taj query(preko $_POST[], $_GET[]) onda obavezno zastiti sqlInjection.

Sto se tice prvog pitanja, onda ne moras, ali opet se vracam na prvi pasus ovog posta: "gde god mozes, sqlInjection postavi". Wink

p0zz

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Sad oko one funkcije za logovanje.
Ja sam u bazi napravio i kolonu active. Ako je korisnik aktivirao nalog onda je 1 u suprotnom je 0.
To sam ubacio i unutar funkcije i to nije problrm.

Sad sam napravio i kolonu status, gde ću korisniku moći dodeliti titulu moderatora, administratora itd. Da li postoji mogućnost da koristim istu funkciju, tj da mi ona ako je korisnik ulogovan vraća i vrednost iz kolone status ili je možda bolje da napravim novu funkciju koja će samo to ispitivati?

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Ne znam sta je bolje(mozda zbog optimizacije da napravis jednu), ali ako te ne mrzi, napravi dve koje ce obavljati posao(tako bar ja radim), to je par linija koda vise, ne verujem da ce extremno uticati na brzinu same aplikacije Wink

Ko je trenutno na forumu
 

Ukupno su 752 korisnika na forumu :: 11 registrovanih, 0 sakrivenih i 741 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Dorcolac, kolle.the.kid, Koridor, kybonacci, Lazarus, SlaKoj, strelac07, suton, yrraf