[ dado_k @ 28.12.2005. 19:23 ] @
Dakle imam login skriptu al možda imam mali problem s njom jer password spremam u cookie kao md5 kriptirani to ne bi trebalo prdstavljat problem vjeroatno al što vi mislite? i nemojte spominjat sesije za njih znam al nemam tu mogućnost!
[ noviKorisnik @ 28.12.2005. 19:32 ] @
Meni je žao, ali zašto bi password uopšte išao u cookie, u bilo kom obliku?

Moraš malo da otkriješ karte, ako ne postoji mogućnost korištenja sesija - postoji li mogućnost rada s bazom ili fajl sistemom?
[ dado_k @ 28.12.2005. 19:38 ] @
postoji i jedno i drugo! pa podaci za šifru su i spremljeni ubazi. razmišljao sam da generiram neki id pa da to spremam u cokie bi li to bilo bolje riješenje? ili da isključim cookie pa ip adrsu spremam u bazu al onda opet za trajni login bez cookie-a nemam ideje! što ti preporučaš?
[ noviKorisnik @ 28.12.2005. 19:51 ] @
Pa ako pogledaš kako sesije funkcionišu - isto to možeš da odradiš i simulacijom sesije, naravno malo više dodatnog pešačenja ... kad ti već provajder ne nudi sesije, napravi ih sam.
[ broker @ 28.12.2005. 19:55 ] @
Nije mi jasno kako ti nisu sesije na raspolaganju? nio svejedno, napravi jednu cookie variablu koju ces zvati session pa u nju smestaj ID sesije koji ces sam da dodelis korsiniku.

Taj ID cuvaj i u bazi (ili datoteci na serveru) gde ces upisivati sve sto se tice te sesije pa i to da li je korisnik ulogovan. Tako ces kod korisnika imati samo jednu cookie promenljivu koja nema nikakvu korsinu informaciju za korisnika a samim tim i siguran sistem.
[ dado_k @ 28.12.2005. 20:02 ] @
da mislim da ću neštomtako i napraviti u cookie spremiti id a u bazi svi podaci
[ noviKorisnik @ 28.12.2005. 20:04 ] @
Baš tako... i ne zaboravi na serijalizaciju i deserijalizaciju podataka :-)
[ The Sekula @ 29.12.2005. 08:02 ] @
... i ne zaboravi da id-evi ne smeju da idu redom 1,2,3... ili na bilo koji slican lako pogodljiv nacin...
[ dado_k @ 29.12.2005. 13:14 ] @
$id=md5(uniqid(rand(), true));
ja koristim ovo mislim da je dosta dobro i u mysql bazi polje je podešeno na unique nego pitanje dal da taj id mjenjam ili kod registracije ga dodijelim i da je stalan zauvijek?
[ bojan_bozovic @ 29.12.2005. 14:13 ] @
koristi crypt(md5('bezveze_text1'.$UID.'bezveze_tekst2')); a nema ko ce to moci da provali ;) zbog md5, sem ako ne mislis da opensource-ujes program, ili ga prodajes, kad je bolje svakako da koristis sesije. Ovaj workaround ce da ti ustedi petljanje sa bazom
[ dado_k @ 29.12.2005. 15:35 ] @
ne ne, kod nećevidjet niko osim mene :D
u to sam siguran da je malo teže provalit budem skovao nešto slično
[ JovanT @ 06.01.2006. 15:16 ] @
Pošto već sam naslov teme govori o sigurnosti, bolje je da svoje pitanje postavim ovde nego da otvaram novu temu.

Zanima me koji je najbolji način za obradu promenljivih koje unosi sam korisnik pre upisa u bazu?
[ flylord @ 06.01.2006. 15:31 ] @
Ako su promenjive brojevi, onda koristi cast operatore
$x = 1;
$x = (int)$x;

$x = "187;'drop table test'";
$x = (int)$x;
$x = 187;

$y = 1.1;
$y = (float)$y;

Ako je string, koristi addslashes()
A ako postoji mogucnost da ima i nekih html tagova: imas htmlentities i addslashes, a mozes i da uklonis sve tagove sa strip_tags()

ako je promenjiva niz, moraces da obradis svaki parametar posebno, ili kroz call_back F-ju ili rucno, kroz petlju

a uvek mozes da radis i encoding pre upisa sa base64encode ili nesto slicno.

Pored SQL i Code Injection napada moze da bude i XSS napad, koji moze da se primeti tek prilikom citanja iz baze; Ubaci vam neko neki JS kod , i vi kad ga iscitate, i kad korisnik to otvori u browseru, taj JS kod se izvrsi. Zato je korisno koristiti htmlentities, makar prilikom prikazivanja texta, ili jednostavno ukloniti sve tagove.
[ bojan_bozovic @ 06.01.2006. 15:53 ] @
Ili htmlspecialchars prilikom izlaza svega sto nisi sam pisao
addslashes pre upisa svakog stringa u bazu
stripslashes v gore
addslashes i stripslashes potpuno iskljucuju SQL injection problem
register_globals je samo debilu moglo da padne na pamet da implementira uopste
[ JovanT @ 07.01.2006. 17:47 ] @
Hvala na odgovorima. Postoji li još nešto o čemu bih trebao da povedem računa prilikom pisanja skripti a tiče se bezbednosti same aplikacije?