Poslao: 20 Dec 2006 11:17
|
offline
- Blood
- 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.
|
|
Poslao: 21 Dec 2006 02:23
|
offline
- Balkanac82
- Legendarni građanin
- 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 (=, €, $, /, \, >, <...)
|
|
|
|
Poslao: 21 Dec 2006 13:30
|
offline
- Blood
- 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 {
...
}
|
|
|
|
Poslao: 21 Dec 2006 15:25
|
offline
- Balkanac82
- Legendarni građanin
- 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.
|
|
|
|
|
Poslao: 12 Jan 2007 10:42
|
offline
- igor86
- 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.
|
|
|
|
Poslao: 07 Maj 2007 17:36
|
offline
- Balkanac82
- Legendarni građanin
- 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?
|
|
|
|
Poslao: 07 Maj 2007 19:44
|
offline
- Blood
- 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".
p0zz
|
|
|
|
Poslao: 15 Maj 2007 15:44
|
offline
- Balkanac82
- Legendarni građanin
- 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?
|
|
|
|
Poslao: 16 Maj 2007 11:32
|
offline
- Blood
- 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
|
|
|
|