| Napredna prijava z "Remember Me" | ||
|---|---|---|
|
Jacky
19. maj 2012 10:34:51
Pridružen od: 22. apr 2012 73 objav 53 15 0 |
#1
Dober dan, Mene zanima ena stvar, in sicer poskušam nardit zelo varno prijavo z možnostjo "Remember me" torej sestava je takšna: Po prijavi usvtarim sejo z informacijami o uporabniku (ID uporabnika (random generiran ali pa Facebook account id), temporary ključ (popovnoma random z trenutnim časom in ip naslovom uporabnika, seveda enskriptan z base64 in pa ključem, hkrati pa ustvarim tudi cookie z informacijo temporary ključa. Torej če uporabnik ne označi "Remember me" bo po potečeni seji (po zaprtju browserja) ta potekla. V bazi pa je ta seja omejena na en dan. Če je pa "Remember me" označen pa se shrani v bazi podatek da je potek seje čez 30 dni, in pa ko uporabnik pride nazaj, brez seje se zgodi naslednje: Samo zanima me ena zadeva, glede na to da se da cookie ukrast, kakšna je možnost za to? Se da kako zaščitit da bi recimo v bazo shranil nekaj unikatnega za vsakega uporabnika? In pa prenašam vse skupaj prek HTTPS če je le možno. Problem pa nastane ko uporabnik pride po potečeni seji, ker ne glede na protokol se ponovno ustvari cookie z novim "keyom" ki pa ni prenešen preku https protokola, je to velika luknja v varnosti? Če želite več lahko tudi postam kodo. Samo da rešim tole, ker rabim res varno prijavo tudi za kasneje. LP. |
|
|
Anonymous
19. maj 2012 18:20:41
Pridružen od: 12. apr 2012 11 objav 25 44 4 |
#2
Cookie ima že itak expiration date, ki ga lahko nastaviš po želji, ne vem zakaj bi kompliciral z bazo. Pa tudi, ko zapreš brskalnik se cookie ne zbriše (default nastavitve). Ne kompliciraj z nekimi temporary keyi, ker s tem ne pridobiš na varnosti ampak samo zakompliciraš zadevo. Base64 prav tako pozabi. Zelo pa pridobiš na varnosti, če celotna povezava kjer se prenaša cookie poteka prek SSL, saj ti ne more nihče secure povezave sniffat. Na varnosti boš pridobil tudi, če uporabiš kakšen salt pri enkripciji gesel v bazi in pa uporabiš sha256, sha512, blowfish oz. enega od novejših hashing algoritmov. Upam, da sem ti kaj pomagal. |
|
|
Jacky
19. maj 2012 18:38:41
Pridružen od: 22. apr 2012 73 objav 53 15 0 |
#3
O ja ^^ Zelo. Za bazo uporabljam Hash sha512 z saltom tako da to me ne skrbi, bol za avtorizacijo pa to. Torej če dam v cookie uporabniški ID z base64() salt enskripcijobi moglo bit dovol varno? Prijava seveda poteka preku SSL oz. TLS |
|
|
Anonymous
19. maj 2012 18:45:46
Pridružen od: 12. apr 2012 11 objav 25 44 4 |
#4
Base64 je brezveze, ker le malo zamenja črke in obfuskira string. Komot pa daš uporabniški id v cookie, saj se tam v vsakem primeru še dodatno zakrije, tako da res ni potrebe po base64. (Base64 NI mišljen za enkripcijo). Tudi če prijava poteka prek SSL, pa se potem cookie ohranja še pri plaintext povezavah, ti ga lahko kdo posniffa in ukrade in s tem dobi session. Tako da, če bi rad mel res secure zadevo, imej vse prek SSL, če pa ni varnost res kritičnega pomena potem je pa tole kar si si zamislu čist uredu. |
|
|
Jacky
19. maj 2012 19:06:53
Pridružen od: 22. apr 2012 73 objav 53 15 0 |
#5
Ok ^^ Hvala za pomoč. Drugače pa ne uporabljam direktno base64 ampak imam nekaj takega: ivlen = 35
|
|
|
blackmamba
20. maj 2012 07:39:08
Pridružen od: 4. mar 2008 559 objav 392 25 11 |
#6
Lahko bi ob prijavi tudi IP preverjal. Ima pa to svoje pluse in minuse. |
|
|
skyx
20. maj 2012 09:04:10
Pridružen od: 19. jul 2010 232 objav 103 21 3 |
#7
Mogoce bi zdraven dodal zakodirano ime racunalnika in preverjal ce je iz enakega racunalnika/naprave to bi bil en tak zanimiv trik se mi zdi :) |
|
|
blackmamba
20. maj 2012 09:21:57
Pridružen od: 4. mar 2008 559 objav 392 25 11 |
||
|
skyx
20. maj 2012 09:57:10
Pridružen od: 19. jul 2010 232 objav 103 21 3 |
#9
Tukaj je govora o tem predlagam da pogledas komentarje. |
|
|
blackmamba
20. maj 2012 10:26:32
Pridružen od: 4. mar 2008 559 objav 392 25 11 |
#10
Oj, sem pogledal in preveril primere... in še vedno ne vem kako dobiti ime :) Mogoče bi se dalo kako do MAC-a dokopat, ampak tako globoko se mi pa neda it raziskovat :) |
|