[ Milan M. Radovic @ 21.09.2006. 23:37 ] @
Je li sigurno da metnem usr i pass u cookie? Stavljam ih bez ikakve enkripcije ili da stavljam sam ID bez pass ili da budu md5 ? Razmisljam,ionako se brise nakon iosteka cookiea zar ne? |
[ Milan M. Radovic @ 21.09.2006. 23:37 ] @
[ m_k @ 22.09.2006. 08:32 ] @
Ja stavim id i md5 pass.
[ pyc @ 22.09.2006. 08:34 ] @
Ako ti je sigurnost veoma bitna, to i nije bas dobra praksa, jer neko moze da ukrade cookie i da se prijavi kao da je vlasnik istog... Ne vidim kakve veze ima vreme isteka cookia, sa svim ovim...
[ bojan_bozovic @ 22.09.2006. 08:50 ] @
1. Valja osigurati od kradje cookija (logovanjem IP u bazu npr.)
2. Valja osigurati od MD5/SHA1 kolizije relativno komplikovanom shemom za skladistenje u cookie, npr, aaa...a,bbb...b u cookiju mi znaci da trazim MD5 koliziju aaa...a -> username, bbb....b ->password ali npr. ako passwordu i username-u appendujes random broj i onda izvrsis MD5 ili SHA1 digest, a prilikom logina iste logujes u bazu (kad se korisnik loguje) to je vec bezbedno, jer kolizija nece u login formi proci. tako i ako koristis razlicite metode digesta u cookiju i pri loginu ili password upisujes u bazu kao plain text - opet fake username/pass dobijen kolizijom nece proci u login formi. Najbolje je koristiti bar dve potpuno razlicite metode hashovanja, npr. RIPEMD-160+SHA-256 Onda imas cetiri hasha u cookiju npr. aa...a,bb...b,c...c,d...d gde su to username RIPEMD-160, username SHA256, pass RIPEMD160 i pass SHA256 respektivno i login uspeva samo ako su sva 4 identicna sa podatkom u bazi + IP je jednaka IP korisnika koja le logovana u bazi. [ Ivan.Markovic @ 22.09.2006. 09:04 ] @
Imas vec sve odgovore, ali ako mozes da izbegnes stavljanje i passworda u cookie ti ga izbegni. Prvenstveno zbog toga sto mislim da neces implementirati dovoljno jak system za enkriptovanje i\ili logovanje i sl pa ako neko bude dovoljno uporan lako ce da ti pokupi sve passove ili putem socijalnog inzenjeringa ili nekog XSSa ili nesto tako slicno ... Mada sa druge strane mozda neces nikome ni biti zanimljiv :) Ali opet posto u vecini slucajeva useri koriste iste passworde svuda ovo nije dobro praksa ako mislis malo na i na njih (naravno u slucaju kupljenja passworda).
[ pyc @ 22.09.2006. 09:14 ] @
Citat: bojan_bozovic: 1. Valja osigurati od kradje cookija (logovanjem IP u bazu npr.) Kakva je korist od toga kada IP može da se promeni? Ono što bi možda malo ovde pojačalo sigurnost je da se uzima "otisak" browsera koji je zapamtio cookie. Dakle u cookie treba pamtiti podatke kao što su tip browsera, rezolucija, sistem, itd... pa onda to upoređivati sa stanjem koje je sam server zapamtio, i ako je se sve poklapa, cookie je validan. Ali naravno ni to nije rešenje za potpunu sigurnost. Potpuna sigurnost se može postići samo ako korisnik uvek kuca password, i ako sve ide preko https-a... [ Milan M. Radovic @ 22.09.2006. 09:23 ] @
Mislite da bi mozda sigrunije resenje bilo da se cookie brise kad se ugasi prozor (browser) ... ?
Kako to da uradim? Da ne stavim parametar za vreme? [ m_k @ 22.09.2006. 09:33 ] @
Citat: choks87: Mislite da bi mozda sigrunije resenje bilo da se cookie brise kad se ugasi prozor (browser) ... ? Kako to da uradim? Da ne stavim parametar za vreme? BTW: Ovo sam vidio na jednom sajtu pa me zanima da li je to dobro rjesenje. Svaki put kad se user loguje generise mu se neki random hash i to se upisuje u bazu i cookie. Da li je to dobro rjesenje? [ pyc @ 22.09.2006. 10:06 ] @
Upravo tako, treba koristiti mehanizam sessions-a, umesto pamcenja login/passworda u cookie. Samo se namesti da sesija traje neograniceno (tacnije jako dugo) i efekat je postignut bez citanja posebnih cookie-a. A u sesijskim promenljivima se cuva ko je ulogovan. Ovaj nacin nije nista sigurniji, jer i dalje moze doci do kradje sesije, ali je elegantniji. Treba razmisliti i o tome da svaka php sesija koja se napravi ima svoj mali fajl u /tmp direktorijumu gde cuva sesijske varijable, tako da se tu moze napraviti mnogo mnogo fajlova ako je sesija jako dugacka, sto nikako nije dobro, ukoliko je sajt veoma opterecen posetom. Moguce je napraviti da se sesijski podaci pamte u bazi podataka, sto je mozda zgodnije u odnosu na gomile sesijskih fajlova u direktorijumu.
Ako treba da se izbegnu sesije, tu je resenje sa login/passwordom u cookie, malo komplikovanije, ali za server manje zahtevno. [ broker @ 22.09.2006. 10:09 ] @
U cookie nemoj upisivati nista sto moze biti zloupotrebljeno a narocito ne lozinku, ma kako da je kodiras.
[ bojan_bozovic @ 22.09.2006. 10:12 ] @
Ip ne ide u cookie vec u bazu. Dakle, ako ipored cookija IP browsera nije ista sa onom u bazi - nema logina. BTW to je mehanizam koji sesije (sessions) koriste, uz slabi hash (verovatno MD5 ili SHA1, uz dodatak random broja/teksta pre hashovanja).
BTW bolje je ne koristiti sesije,ili koristiti poseban session handler koji upisuje u bazu - ako zelis znati npr. kada se korisnici loguju na tvoj sajt. [ staticInt @ 22.09.2006. 10:17 ] @
Citat: broker: U cookie nemoj upisivati nista sto moze biti zloupotrebljeno a narocito ne lozinku, ma kako da je kodiras. Ako neko zeli da nadje naci ce dzabe i da stavlja md5 hashing passworda, btw ni ES nema tu vrstu zastite tako da ono ;) [ m_k @ 22.09.2006. 10:25 ] @
WTF sad malo cackam cookie i ispade da ES sprema pass u cookie bez ikakvog hasha :S
[ bojan_bozovic @ 22.09.2006. 10:26 ] @
Zato se kombinuju hashovi npr
$uname=$login->username; $md5=md5($login->username.$login->time.$login->rand.$login->UA; $sha1=sha1($login->username.$login->time.$login->rand.$login->UA; $cookiedata=md5($md5.$sha1); gde je $login->rand npr. rand(0,65535) i upisuje se u bazu prilikom logina $login->time je time() logina i takodje se upisuje $login->UA je user-agent sa koga se je logovalo Dakle onaj ko proba da fordzuje cookie,mora i isti browser da koristi, ako ikad provali koji su hashovi korisceni i kojim redom.Mnogo bezbednije od session cookija. Naravno i IP mora isti biti, kao kod session cookija (proveri se da li je IP browsera ista sa IP sa koje je login forma submitovana, da li se browseripoklapaju itd.) [ noviKorisnik @ 22.09.2006. 10:29 ] @
Ups, molim, a kakva korist od trackinga IP adrese? Pogotovo ako se pretpostavi da se bilo kakva validacija radi na osnovu nje. Ako se uzme u obzir da većina korisnika ima dinamički IP, to puca - na primer AOL korisnici dobijaju dinamički novu adresu pri svakom zahtevu.
[ bojan_bozovic @ 22.09.2006. 10:31 ] @
Ti nece da se loguju. A dalje, postavis da cookie traje samo dok se ne zatvori browser.
Da narusavam bezbednost sajta zbog idiotskog provajdera tamo negde??! Nije razumno. [ pyc @ 22.09.2006. 10:47 ] @
Citat: m_k: WTF sad malo cackam cookie i ispade da ES sprema pass u cookie bez ikakvog hasha :S Pa sta, neka ga, bolje je tako neko da se non stop kuca password - smaranje. Nije ES online banka pa da mora toliko da se vodi racuna o sigurnosti. A to da li je hashovan ili ne, manje vise se isto hvata.... Nemoj Gojko da vidi ovu poruku pa da napravi da kucamo password svi uvek, ne bi valjalo ;) [ bojan_bozovic @ 22.09.2006. 10:50 ] @
E vidis valjalo bi, ionako ti browser pamti lozinke, zar ne?
[ noviKorisnik @ 22.09.2006. 10:56 ] @
Dobro, ako dva korisnika koriste isti proxy, to ne narušava bezbednost sajta i mogu slobodno da se hakerišu međusobno. A onaj "tamo negde" drži pola Amerike ... pa nek menjaju provajdera da bi mogli bezbedno da koriste sajt.
[ Milan M. Radovic @ 23.09.2006. 19:11 ] @
Recimo da stavim smao ID u cookie
id jovica 127.0.0.1/ 1536 2022330368 29810492 612724960 29810490 * Ako on otvori cooke fajl i promeni ovo jovica na kompu (npr u internet cafeu) i zameni za neko korisnicko ime za koje zna ,da li onda moze da se uloguje kao on? [ bojan_bozovic @ 23.09.2006. 19:14 ] @
Moci ce,ako ne parsiras cookie, i informacije u njemu ne uporedis sa onima u bazi (hashovi(, ne uporedis njegovu IP sa onom koja je logovana itd. Ako ti nije jasno sta napisah gore, preporucujem da se drzis session cookija koje sam PHP pravi.
[ Milan M. Radovic @ 24.09.2006. 11:31 ] @
Citat: bojan_bozovic: Moci ce,ako ne parsiras cookie, i informacije u njemu ne uporedis sa onima u bazi (hashovi(, ne uporedis njegovu IP sa onom koja je logovana itd. Ako ti nije jasno sta napisah gore, preporucujem da se drzis session cookija koje sam PHP pravi. Mozes li da mi prevedes ovaj fajl tako da koristi sessions? Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|