Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem jedan korisnik vise maxina...

[es] :: PHP :: Problem jedan korisnik vise maxina...

[ Pregleda: 2065 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

noctua

Član broj: 10671
Poruke: 185
*.edn.co.yu.



Profil

icon Problem jedan korisnik vise maxina...16.01.2008. u 09:44 - pre 197 meseci
Pozdrav!

Elem, radim nesto ovih dana, pa sam naisao na zanimljiv problem:
Potrebno mi je da ogranicim korisnika aplikacije da ne moze da radi u isto vreme sa 2 maxine/browsera.

Primer:
Salterski radnik u banci.
Npr, radi na novcanim transakcijama (ne transakcija u DB vec transakcija u smislu prebacivanje novca sa jednog preko drugog na treci racun sa sve proverama na raznim serverima i sluzbama... znaci "transakcija" moze da traje i po nekoliko sati).

Radnik sme samo na jednom mestu u jednom trenutku da bude ulogovan! (Zamislite brljotinu tipa sa jedne maxine - jedne instance browsera - pokrene transakciju prebacivanja novca, a sa druge maxine/browsera pokrene na istom racunu transakciju za ponistavanje prethodne transakcije...)

Dobro, primer mozda nije bas adekvatan, ali nadam se da razumete o cemu pricam.

Bitno je da na web aplikaciji korisnik moze u jednom trenutku da bude samo jednom ulogovan!

Imam neke ideje (evidencija o korisniku/sesija/maxina u db i sicno... ), ali su mi sve manjkave...


Ne treba mi konkretan kod... zanimaju me vasa iskustva i ideje kako resiti problem...
http://noctua4u.blogspot.com
http://moourl.com/shfb0
..:: Aquila non captat muscas ::..
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.yu.



+257 Profil

icon Re: Problem jedan korisnik vise maxina...16.01.2008. u 22:50 - pre 197 meseci
Hm, mozda kombinacija kukija i upisivanja podataka u bazu o korisniku. Pa ako je ulogovan (iz baze), a nema kuki - ne dozvoliti mu logovanje jer je vec logovan sa druge masine. Naravno trebala bi i provera po vremenima, ako je istekao kuki a u bazi je logovan.

Ili jednostavno resenje da MORA da se izloguje da bi se ponovo ulogovao (prilikom logina u bazu zapises da je logovan, a prilikom logouta da je izlogovan) i ne dopustas mu logovanje ako je vec ulogovan. Naravno, ovo povlaci - sta sa ljudima koji zaborave da se izloguju - onda bi to morao rucno da im popravljas...

Ne pada mi na pamet nista vise zasad.
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 868
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Problem jedan korisnik vise maxina...16.01.2008. u 23:10 - pre 197 meseci
Ako hoces da budes siguran najbolje je da u bazu stavis polja ulogovan, ip, browser, vrijeme, hash, aktivan

I onda lijepo provjeravas ako je ulogovan setujes mu cookie ili sesiju sa nekim hash-om koji ce imati vrijednost recimo md5($ip:$vrijeme)
i kasnije radis provjeru da li je IP adresa ista (isti je link) ako jeste onda ides dalje provjeravas hash ako se poklapa na kraju samo provjeris da li je isti browser
ako jeste onda provjeravas polje aktivan da li je pokrenuo neku transakciju ili akciju, ako jeste blokiras mu sve komande dok se ne izvrsi predhodna...

ne znam mozda sam malo zakomplikovao ali to mi jedino pada na pamet kao idiot proof rjesenje...
 
Odgovor na temu

noctua

Član broj: 10671
Poruke: 185
*.edn.co.yu.



Profil

icon Re: Problem jedan korisnik vise maxina...17.01.2008. u 08:48 - pre 197 meseci
Pozdrav!

Hipoteticki gledano, svi ovi predlozi su, sasvim ok. Ali... pokusavam da nacinim aplikaciju koja ce raditi BEZ mene (tj, bez ikoga ko ce rucno skidati one koji su zaboravili da se izloguju)... Zapravo, hajde da pricamo o GENERALNOM resenju koje je primenjivo svuda, na svim platformama, i u svim web-jezicima

Citat:
Jbyn4e: Hm, mozda kombinacija kukija i upisivanja podataka u bazu o korisniku...


Razmisljao sam i o ovome. ali, sta sa onima koji imaju zabranjene kukije?
Polazim od toga da NE koristim kukije...

Citat:
ColdKeyboard: Ako hoces da budes siguran najbolje je da u bazu stavis polja ulogovan, ip, browser, vrijeme, hash, aktivan


IP je po meni dobra ideja, ali mislim da je nedovoljna... Generalno gledano, sta je sa korisnicima koji imaju samo jednu staticku adresu i iza nje 50ak maxina i izlaze svi na mrezu preko te adrese? Nisam siguran kakva je IP adresa u tom slucaju... mislim da je ista svima... Mozda gresim, ispravite me ako nije tako.
Browser mislim da ne cini posao. Sta je sa IE7 koji otvara aplikaciju iz drugog taba? Tu se sesija prenosi... (ili to bese FF?? Ili ja gresim?)
Ulogovan, Vreme, hash, aktivan su sasvim korektni. Ali...


Ja sam razmisljao nesto na principu upisa u bazu sledeceg para: USER_NAME, SESSION_ID i eventualno LAST_ACCESS_TIME. E sad, princip bi bio: Kada se korisnik uloguje, u DB se upisuju ti podaci. Kada se izloguje, brisu se. Ukoliko pokusa jos jeno logovanje, vec postoji user_name sa drugim session id (mozda bi ovde bio problem isti browser 2 puta??)...
Ukoliko bi radio i sa last_access_time, onda bih ogranicio na npr 2 sata razliku... Pa ako je isteklo vreme loguj se ponovo... Ali i tu treba razviti debelu logiku u smislu da li neko pokusava posle 2 sata da se loguje sa drugog mesta, ili sa istog (vidi opasku za IP)...

Sva resenja (i moje i ona koja ste predlozili) deluju korektno. Ali ostaje jedno kljucno pitanje:
Sta ako korisnik jednostavno zatvori browser umesto da se izloguje?

Mislim... nemoguce da je ovaj problem neresiv???

http://noctua4u.blogspot.com
http://moourl.com/shfb0
..:: Aquila non captat muscas ::..
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
89.216.108.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Problem jedan korisnik vise maxina...17.01.2008. u 09:00 - pre 197 meseci
Citat:
noctua: ...ali, sta sa onima koji imaju zabranjene kukije?

I sesija se cuva u cookie, pa onda nece ni moci biti logovani ;)
Ja sam to napravio tako sto cuvam sessio_id u bazi, is_loged postavim na 1 u bazi, i cuvam vreme zadnjeg pristupa sajtu. (eventualno ajax koji osvezava sesiju na 10 minuta ako korisnik gleda sadrzaj, ali ovo moze da napravi problem da dokle god je browser ukljucen, user ne moze da se loguje sa drugog kompa (ode na posao, a kuci zaboravi browser)). I onda, ako je is_loged a poslednje vreme pristupa je manje od 15 min, ne moze da se loguje sa drugog browsera. Ako je ugasio browser i zaboravio da se loguje, sacekace 15 minuta da se loguje ponovo. Isto ako je neaktivan 15min (znaci da je ugasio browser, inace bi ajax osvezio vreme zadnjeg pristupa) onda moze da se loguje. Takodje se proverava session_id, da bi se sprecilo da oba korisnika budu logovana za slucaj da mu browser cuva sesiju, a ugasio je tab. Ako se session_id ne slaze, samo obrisem sesiju. A i ff i ie po tabovima dele sesiju, sto je i nekako logicno, jer je isti browser, pa bi i trebalo da sesija bude ista (tabovi samo olaksavaju pregled sajta).
 
Odgovor na temu

[es] :: PHP :: Problem jedan korisnik vise maxina...

[ Pregleda: 2065 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.