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

Autentifikacija i validacija korisnika?

[es] :: PHP :: Autentifikacija i validacija korisnika?

Strane: 1 2

[ Pregleda: 6268 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

oliver78
Oliver Petković
Pančevo

Član broj: 5031
Poruke: 230
*.panet.co.yu.

Sajt: oliver.glogonj.net


Profil

icon Autentifikacija i validacija korisnika?15.08.2005. u 21:42 - pre 227 meseci
Ovako, pravim jedan mali CMS sistem i potrebna mi je autentifikacija i validacija korisnika za pristup odredjenoj stranici.
Sve sam uradio, ali me interesuje da li pristup dobar.
Evo kako to vrisim.

1. Da li korisnik ima kljuc sesije?

2. Ima - Slobodan pristup stranici.

3. Nema - Vrsi se logovanje.

4. Ako su podaci koje je dao tacni korisniku se predaje kljuc (upisuje se u bazu).

5. Ako su nisu ispravni vraca se na logovanje sa informacijom o gresci.


Deo 1. mi stvara najvise nedoumica. Ja sam ovo sredio tako sto za tekuci kljuc sesije uzmem USERNAME iz baze i proverim da li taj korisnik ima pravo pristupa tekucoj stranici. Da li je taj nacin ispravan?

Inace u sesiji upisujem username i lastvisit iz baze. Da li je jos nesto korisno?

Hvala

 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 02:35 - pre 227 meseci
Pristup koji se uglavnom koristi na net-u je sledeci.
Kada se uloguje korisnik ima na raspolaganju kljuc sesije (koji se generise na slucajan nacin).
Ako sam dobro shvatio tvoj pristup svako ko zna koji su korisnici ulogovani na sistem moze da im otme sesiju tako sto ce kao svoj session ID poturiti username ulogovanog korisnika.
Owl
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 07:38 - pre 227 meseci
??? a kako bi se bukvalno ta otimačina sprovodila?
 
Odgovor na temu

oliver78
Oliver Petković
Pančevo

Član broj: 5031
Poruke: 230
*.panet.co.yu.

Sajt: oliver.glogonj.net


Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 08:01 - pre 227 meseci
Citat:
_owl_:
Ako sam dobro shvatio tvoj pristup svako ko zna koji su korisnici ulogovani na sistem moze da im otme sesiju tako sto ce kao svoj session ID poturiti username ulogovanog korisnika.


Ne, nego obratno. Za dati kljuc sesije trazi se u bazi username korisnika koji ima taj kljuc.
Znaci, kada se neki korisnik uloguje u bazu mu se upisuje kljuc sesije. Kada se korisnik sa tim istim kljucem ponovo vrati na tu stranicu kljuc sesije je isti. Za taj kljuc trazi se username i proverava se pravo pristupa.

PITANJE: Da li je mozda lakse, a isto tako SIGURNO, u sesiji upisati neku vrednost npr login=1 koja ce voditi racuna o tome da li je korisnik sa tim kljucem ulogovan.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 10:49 - pre 227 meseci
Napravi posebnu tabelu koja ce drzati parove session_id / user_id (gde je kljuc tabele session_id).

Kad god neko otvori stranucu, proveri da li za taj session id ima slog, i ako nema dodaj ga, bez obzira da li je korsinik ulogovan ili ne. U tom slogu mozes da pmatis recimo i IP sa koga je sajt otvoren tako da kasnije to mozes da proveravas i ako dodje do promene IP-a (neko pokusava da preotme session id, raskines tu sesiju).

Ako se korisnik i uloguje, onda u slog sesije upises i koji je to user i to ti je istovremeno informacija da je user ulogovan. Nikada nemoj u promenljivama sesije da pamtis statuse kao sto je to da li je user logovan, nego to proveravaj u tabeli.

U ovoj tabeli mozes da pamtis i vreme kada je sesija kreirana, vreme poslednjeg pristupa sajtu, a da brises sve sesije kodkojih korsinik nije pristupao sajtu u prethodnih n minuta i tako cak obezbedis pregled svih aktivnih sesija, tj, trenutan broj poseilaca sajta bez obzira da li su ulogovani ili ne.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 12:06 - pre 227 meseci
Citat:
broker:
Kad god neko otvori stranucu, proveri da li za taj session id ima slog, i ako nema dodaj ga, bez obzira da li je korsinik ulogovan ili ne. U tom slogu mozes da pmatis recimo i IP sa koga je sajt otvoren tako da kasnije to mozes da proveravas i ako dodje do promene IP-a (neko pokusava da preotme session id, raskines tu sesiju).

Od prevelike brige zna da zaboli glava. Ako sam na dial-up konekciji i pukne mi veza, konektujem se ponovo i naravno dobijam drugu IP adresu, a mene sajt šutne zato što pokušavam da otmem sebi sesiju. Pročitao sam da AOL mreža tako konfigurisana da korisnik na svaki request dobija novu IP adresu (e to je prava dinamika)...
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 13:09 - pre 227 meseci
Citat:
broker:Nikada nemoj u promenljivama sesije da pamtis statuse kao sto je to da li je user logovan, nego to proveravaj u tabeli.

Da li možeš da mi objasniš zašto?
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 15:20 - pre 227 meseci
Citat:
noviKorisnik: Ako sam na dial-up konekciji i pukne mi veza, konektujem se ponovo i naravno dobijam drugu IP adresu, a mene sajt šutne zato što pokušavam da otmem sebi sesiju.


Tako i treba. Sajt treba da ubije staru sesiju a tebi dozvoli da udjes tako sto ces ponovo da se ulogujes. Ako tako ne bi radio onda bi svako na zgodnom mestu i sa malim snifferom mogao da upada na tudje naloge.

Tako radi i ES izmedu ostalog a i svaki drugi forum.


Citat:
obucina:
broker:Nikada nemoj u promenljivama sesije da pamtis statuse kao sto je to da li je user logovan, nego to proveravaj u tabeli.

Da li možeš da mi objasniš zašto?


Zbog sigurnosnih razloga. U promenljvie sesije ne treba stavljati podatke koji mogu da budu od koristi eventualnom provalniku. Umesto da cuvas username, password, status i slicne infroamcije u sesiji, cuvaj ih u tabeli, a na njih se referenciraj nekim podatkom koji cuvas u promenljivoj sesije. Tako nije izlozen nijedan konkretan podatak nego samo kljuc po kome serverska aplikacija dolazi do onog sto mu je potrebno. napadacu spolja, sam kljuc je bezvredna inforamcija, jer nema privilegije da pristupi podacima u bazi - to moze samo serverska aplikacija.


 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 15:44 - pre 227 meseci
Samo serverska aplikacija može da pristupi session varijablama, ili grešim negde u osnovnim poimanjima?
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 20:45 - pre 227 meseci
Nastala je zabuna zato sto podaci o sesiji mogu da se cuvaju i kod klijenta (tj u cookiju) a ne samo na serveru (fajl sistem, baza).
Kada se radi autentifikacija bitno je znati sta se nalazi kod klijenta (posto zlonamerni korisnici mogu da promene te podatke) a sta na serveru (tim podacima pristup ima samo aplikacija).
Dakle kada se korisnik loguje on aplikaciji salje svoj username i password a aplikacija mu vraca neki session_id pomocu koga ce pratiti njegovo kretanje na sajtu i prikazivati mu sadrzaj u zavisnosti od privilegija koje su vezane za taj session_id preko veze username <--> session_id. Sam session_id moze da se cuva u cookiju ili se prosledjuje kroz svaki url na sajtu.

Citat:
oliver78
Ja sam ovo sredio tako sto za tekuci kljuc sesije uzmem USERNAME iz baze i proverim da li taj korisnik ima pravo pristupa tekucoj stranici.

Iz ovoga proizilazi da ti je session_id koji se vraca klijentu nakon logovanja sam njegov username (tj da su ti u svim redovima session tabele polja session_id i username ista)

Citat:
noviKorisnik: ??? a kako bi se bukvalno ta otimačina sprovodila?

U slucaju da njemu autentifikacija radi na prethodno opisan nacin (session_id=username), kada znas da je ulogovan neki korisnik ti kao session_id stavis njegov username i ulogovan si kao i on.
Owl
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?16.08.2005. u 21:57 - pre 227 meseci
Oh, pa ne znam kada bi mi palo na pamet da napravim vezu session_id=username. Nisam siguran da je to Oliver mislio u startu, ali sada kad ponovo čitam deluje mi i to moguće.
 
Odgovor na temu

oliver78
Oliver Petković
Pančevo

Član broj: 5031
Poruke: 230
*.panet.co.yu.

Sajt: oliver.glogonj.net


Profil

icon Re: Autentifikacija i validacija korisnika?17.08.2005. u 08:02 - pre 227 meseci
Ne, nisam pravio takvu vezu (session_id=username). Ja sam se oslonio na to da je jako tesko (citaj nemoguce) da server dodeli dva ista kljuca sesije. Tako da ne moze da se desi sledeca situacija:
1. korisnik se uspesno uloguje i upise se kljuc sesije u bazu,
2. korisnik se ne izloguje - ne obrise se kljuc sesije iz baze (prilikom logout-a podesio sam da se u bazu za kljuc sesije postavi 0),
3. sledecem korisniku se dodeli kljuc sesije identican predhodnom,
4. proveri se u bazi i ustanovi da "pera" ima kljuc sesije,
5. slobodan prolaz do mile volje jer je "pera" ADMINISTRATOR bre.

Eh, to je problem.

Ova ideja sa posebnom tabelom za sesije mi se cini interesantnom pa ako moze malo vise da to prokomentarisemo.

Hvala,
javljam se kad se vratim se ipita.
P.S. Nisam pominjao kukije. Posto je rec o blogu za sada mi oni nisu potrebni.



[Ovu poruku je menjao oliver78 dana 17.08.2005. u 09:10 GMT+1]
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?17.08.2005. u 10:06 - pre 227 meseci
Tačka 3 bi trebalo da bude tačka pucanja. E sad, jeste da je praktično nemoguće da server dodeli iste ključeve sesije, ipak možeš i dodatno da se obezbediš generisanjem id-a sesije (npr. nema padanja na tački 3 ako je id timestamp + neki random ostatak).
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Autentifikacija i validacija korisnika?17.08.2005. u 20:54 - pre 227 meseci
Cekaj jesu li u bezi odvojene tabele koje cuvaju podatke o korisniku i o sesijama. Mozes pomocu nekog ogranicenja na vrednost kljuceva sesije u bazi da onemogucis kreiranje dva ista session_id-a.
Owl
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?17.08.2005. u 22:19 - pre 227 meseci
Moram da priznam da mi uopšte nije jasna motivacija za beleženje session_id u bazu, pogotovo ako se radi o ulogovanom korisniku. Jedino možda za statistike, može da se prati svako logovanje pojedinačnog korisnika, kretanje po stranicama sajta, itd (sve ovo u tom slučaju važi i za neulogovanog korisnika, osim što se ne vezuje za korisnički zapis).
 
Odgovor na temu

oliver78
Oliver Petković
Pančevo

Član broj: 5031
Poruke: 230
*.panet.co.yu.

Sajt: oliver.glogonj.net


Profil

icon Re: Autentifikacija i validacija korisnika?18.08.2005. u 01:31 - pre 227 meseci
Citat:
noviKorisnik: Moram da priznam da mi uopšte nije jasna motivacija za beleženje session_id u bazu, pogotovo ako se radi o ulogovanom korisniku. Jedino možda za statistike, može da se prati svako logovanje pojedinačnog korisnika, kretanje po stranicama sajta, itd (sve ovo u tom slučaju važi i za neulogovanog korisnika, osim što se ne vezuje za korisnički zapis).


Pa kako drugacije da se zna da li korisnik poseduje tekuci kljuc sesije. Valjda treba nege da se to upise.
A motivacija je sledeca:
1. Ulogujem se.
2. Izmenim neki post.
3. Pogledam kako izgleda na home stranici.
4. Nisam zadovoljan.
5. Vratim se stranicu za administraciju.
6. Ne moram ponovo da se logujem, jer nisam prekidao sesiju. (Imam kljuc)

(Jeeeee, poceo sam i od obicnog teksta da pravim kod. Strasno. :) )

Citat:
_owl_: Cekaj jesu li u bezi odvojene tabele koje cuvaju podatke o korisniku i o sesijama. Mozes pomocu nekog ogranicenja na vrednost kljuceva sesije u bazi da onemogucis kreiranje dva ista session_id-a.


Da ovo su sada detalji. U principu ono sto sam uradio funkcionise (nadam) se kako treba. Mozda nije lose, kao sto je neko pomenuo, da se napravi posebna tabela za sesije. Pogledacu u nekom gotovom CMS.

Aj, kad dodam "allowed_tags" u delu za administraciju ostavicu username i password za login pa da probate, pa ako neko nesto primeti da javi. Imam privremeni CMS podignut na free serveru. OK?
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?18.08.2005. u 01:54 - pre 227 meseci
Citat:
(Jeeeee, poceo sam i od obicnog teksta da pravim kod. Strasno. :) )

:-)

session_id ti se već čuva u kukiju, ostali podaci sesije su na serveru u fajlu koji odgovara tom id-u. Tako da nema problema da odradiš ovaj scenario, dogod postoji i kuki i fajl. Kuki ti stoji dok je otvoren browser, fajl dvadesetak minuta od poslednje aktivnosti.
 
Odgovor na temu

oliver78
Oliver Petković
Pančevo

Član broj: 5031
Poruke: 230
*.panet.co.yu.

Sajt: oliver.glogonj.net


Profil

icon Re: Autentifikacija i validacija korisnika?18.08.2005. u 16:14 - pre 227 meseci
Citat:
noviKorisnik:
session_id ti se već čuva u kukiju, ostali podaci sesije su na serveru u fajlu koji odgovara tom id-u. Tako da nema problema da odradiš ovaj scenario, dogod postoji i kuki i fajl. Kuki ti stoji dok je otvoren browser, fajl dvadesetak minuta od poslednje aktivnosti.


Nisam primetio kukije. Nisam ih ni koristio.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Autentifikacija i validacija korisnika?18.08.2005. u 16:31 - pre 227 meseci
Jesi koristio (implicitno) ako su ti default setovanja konfiguracije za sesiju (session.use_cookies = 1).

Testiraj: print_r ($_COOKIE);
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.smin.sezampro.yu.



+13 Profil

icon Re: Autentifikacija i validacija korisnika?18.08.2005. u 17:59 - pre 227 meseci
ok, prica sa session_id radi sve dok se ne iskljuci browser...

kako bi to moglo da se uradi a da korisnik bude autentifikovan i ako je u medjuvremenu iskljucio browser, ili ako je bio neaktivan vise od 20 min?

pretpostavljam da bi moglo sa kukijem veceg trajanja, cija bi se vrednost upisala u bazu, pa se onda poredila vrednost iz baze sa onom iz kolaca svaki put kad se pristupi nekoj strani koja zahteva autentifikaciju? nesto slicno celoj ovoj prici gore?
 
Odgovor na temu

[es] :: PHP :: Autentifikacija i validacija korisnika?

Strane: 1 2

[ Pregleda: 6268 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

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