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

COOKIE -mala pomoc.

[es] :: PHP :: PHP za početnike :: COOKIE -mala pomoc.

[ Pregleda: 2927 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon COOKIE -mala pomoc.23.07.2012. u 22:11 - pre 142 meseci
Code (php):

function if_login() {
     if (isset($_SESSION['username']) && !empty($_SESSION['username']) &&
          isset($_SESSION['password']) && !empty($_SESSION['password'])) {
          return true;
     } else {
          if (isset($_COOKIE['username']) && !empty($_COOKIE['username']) &&
               isset($_COOKIE['password']) && !empty($_COOKIE['password'])) {
               $username = $_COOKIE['username'];
               $password = $_COOKIE['password'];
               login($username, $password);
               return true;
          } else {
               return false;
          }
     }
}

function login($username, $password) {
     $password_md5 = md5($password);   
     if (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password_md5'"), 0) == 1) {
          $_SESSION['username'] = $username;
          $_SESSION['password'] = $password;
          setcookie('username', $username, time()+864000);
          setcookie('password', $password, time()+864000);
          return true;       
     } else {
          return false;
     }
}
 


prvo da li su dobre ova funkcije? A tacnije, pokusavam automatski log in ako postoje cookies kod korisnika. Ali me zanima, kako funkcija zna koji cookie da trazi? mozda se sa jednog racunara vise korisnika se registrovalo?
Tj. zanima me ako funkcija pomesa neke korisnike i lozinke , da li ce mi izbaciti neku sistemsku gresku ako ne moze da se uloguje?
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.23.07.2012. u 23:38 - pre 142 meseci
Zašto čuvaš lozinku u kolačićima?!
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 00:00 - pre 142 meseci
mislis, da sacuvam samo user_id ?
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 00:47 - pre 142 meseci
Ajde ovako. Kao prvo, šta me sprečava da u brauzeru unesem username i password kukije sa bilokojim vrednostima?
Šta me sprečava da unesem user_id 1 ili koji već broj?
NIŠTA!
Bolje koristi sesije i podesi trajanje sesija tako da traju i kada se zatvori brauzer ako ne želiš da ti aplikacija bude hakovana, a pisao si i o nekoj e prodavnici tako da verovatno može tako i gomila brojeva kreditnih kartica da se ukrade.
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 08:02 - pre 142 meseci
pa cemu onda sluze cookie? Mnogi sajtovi ih koriste. Inace jos jedno pitanje, kako je moja mozilia zapamtila recimo moje korisnicko ime i lozinku pa sam uvek logovan na fejsu? Zar ne preko cookies? A i inace u mozili imam sacuvane lozinke za i druge sajtove..odakle??
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
37.19.108.*



+303 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 08:21 - pre 142 meseci
Totalno ti je pogresna logika.

Code (php):

     if (isset($_SESSION['username']) && !empty($_SESSION['username']) &&
           isset($_SESSION['password']) && !empty($_SESSION['password'])) {
           return true;
 

Zasto proveravas da li su setovani i username i password? Ovde proveravas da li je korisnik ulogovan, znaci proveravas $_SESSION['logged_in'];


Code (php):

$username = $_COOKIE['username'];
$password = $_COOKIE['password'];
login($username, $password);
return true;
 

a)Vracas true, cak i ako su podaci pogresni.
b)Zasto dodeljujes vrednost varijablama kad mozes direktno login($_COOKIE['username'],$_COOKIE['password']?


Code (php):

"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password_md5'"
 

Mysql injection...

U bazi cuvas jedan random generisani string. Njega vezes za korisnicki id, i upisujes u cookie. Kad hoces da ulogujes korisnika, trazis ga na osnovu tog stringa, uzimas id iz baze i na osnovu njega uzimas korisnikove podatke...
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.static.isp.telekom.rs.



+44 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 10:45 - pre 142 meseci
Da bi bar malo osigurao skriptu možeš sačuvati sledeće podatke u cookie: usename, hash, IP.

Kada korisnik čekira polje Autologin ili kako se već zove, generišeš neki random key (hash) i uneseš u bazu zajedno sa korisničkim imenom i IP adresom. Prilikom svake prijave (automatske ili manuelne) hash se ponovo generiše i upisuje u bazu i cookies.

Proveru vršiš tako što svi ovi podaci iz baze moraju da se slažu sa podacima iz kolačića. Takođe, ograniči trajanje cookies-a.
Mogao bi da uvedeš i veći stepen sigurnosti...npr kada se korisnik automatski prijavi neće imati neke opcije, već će morati da ukuca svoju lozinku pre svake izmene (kada prvi put ukuca lozinku onda je prijavljen normalno).
Ovo su neke osnovne metode koje se koriste za automatsku prijavu. Stavljati lozinke u cookies nije baš pametna ideja.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 12:54 - pre 142 meseci
Koriscenje IP adrese nije pametno u ovakvim slucajevima. Postoje provajderi uglavnom u Americi koji rade preko proxy-ija koji pristupa stranici sa razlicitih IP adresa. Cak delove stranica kao sto su slike, js, css, flash, html pristupa i preuzima sa razlicith IP adresa.


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 13:09 - pre 142 meseci
http://www.elitesecurity.org/t453362-0#3141804
a zasto sam ja mislio da je $_COOKIE sigurniji od $_SESSION ?

I da ponovim pitanje. Odakle uzima mozilla vrednosti za username i password ? jel ona to radi automatski, bez obzira na koriscenje COOKIE-a ?
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 13:51 - pre 142 meseci
Ne. Ti si pitao da li da kriptuješ podatke u session, ja sam rekao da ne moraš ali niko ti nije rekao da su kukiji sigurniji od sesija.
Što se tiče fajerfoksa, on uzme vrednosti iz polja koja si ukucao. Probaj, napravi praznu stranu sa dva polja, jedno text drugo password i unesi i fajerfoks će te pitati da li da zapamti.
Što se tiče fejsbuka, ne koriste kukije za logovanje već imaju jedna auth kukij u kome se nalazi neki kod random generisan prilikom logovanja koji je takođe smešten u bazi podataka tako da može to da se poveže.
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 13:54 - pre 142 meseci
aha, cekaj da rezimiram. ulogujem se, generise se random kod, snimi se u bazu i posalje korisniku. Kasnije ako se ta dva koda poklapaju, korisnik se automatski uloguje.
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.24.07.2012. u 14:18 - pre 142 meseci
Da. Možeš i ovako: Proveriš da li je setovano logged_in u sesiji. Ako nije, a ako je setovan kukij sa hashom, proveriš u bazi i ako se poklapa setuješ logged_in u sesiji. Ako se ne poklapa, redirektuješ ga na login. Ako se uloguje, setuješ kolač sa nekim random stringom, ubaciš u bazu username i hash u novoj tabeli. setuješ kukij sa hashom i setuješ logged_in u sesiji.
To je najsigurnije.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 09:39 - pre 142 meseci
I opet se onda dodje na slican problem kao da snimas password u cookie. Ako udjem u cookie sada necu videti koji ti je password ali cu videti taj hash pa cu ga staviti u moj cookie i bicu automatski logovan na
tvoj account i mogu ti prometiti password.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
77.243.22.*



+303 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 09:56 - pre 142 meseci
Zato u sekciji gde korisnik menja email i password stavi da korisnik mora da ukuca svoj password pre nego sto pristupi tim opcijama.
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 11:14 - pre 142 meseci
Najlakše je da se postavi trajanje sesije.
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 11:54 - pre 142 meseci
Postavio sam ja trajanje cookie na 10 dana, mozda smanjim, na 5.. da li si na to mislio?

Mozda problem moze da resi IP korisnika. Grabujem IP i upisem u bazu. tako da kolacic radi samo ako dolazi sa tog IP-a.

E sad ne znam sta ako je IP dinamicki, mozda treba da se grabuje neki IP na visem nivuo, od provajdera, itd..da se sto vise suzi izbor.
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 11:58 - pre 142 meseci
Telekom je najpopularniji provajder u srbiji, gomila ljudi ima njegov ip. Čak iako čuvaš provajdera (deo hostname-a) ipak jako mnogo ljudi ima tog provajdera.
Najlakše je da promeniš trajanje sesiji.
Pretraži na yahoo, bing, ili don't be evil (google): "php set session time"
 
Odgovor na temu

CiM0beTa

Član broj: 303979
Poruke: 194
193.107.4.*



+50 Profil

icon Re: COOKIE -mala pomoc.25.07.2012. u 12:11 - pre 142 meseci
Da, vidim ja to, nasao sam. Samo ne znam da li to resava problem. U globalu cookie necu postavljati uvek, vec samo ako to korisnik zeli.
Ali evo i ja, nisam brisao cookie bas odavno i automatski me loguje na gomilu sajtova, bas da vidim sta kaze es :)
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: COOKIE -mala pomoc.11.09.2012. u 14:49 - pre 141 meseci
Bićeš izlogovan.

Možeš podesiti da korisnik može sam da podesi nivo sigurnosti, kao što nude mnogi sajtovi. Na primer na najvišem nivou proverava se sve: IP, hash, možeš ubaciti i neki geoIP sistem pa da upisuješ i lokaciju (npr 2 letter country code). I sve mora da se slaže: Korisnikova IP adresa -> Adresa iz cookies-a, hash iz baze -> hash iz cookiesa, Korisnikov 2 letter country code -> Country code iz baze.

GeoIP može a i ne mora biti vezan za autologin. Uz pomoć geoip lokatora možeš proveravati sumnjive aktivnosti. Na primer ako se korisnik normalno prijavi, ali geoIP pokazuje drugu zemlju u odnosu na prethodnu prijavu. Tada možeš upisati log u bazu podataka (posebna tabela) i obavestiti korisnika o sumnjivim aktivnostima vezanim za njegov nalog sa predlogom da promeni lozinku.

Kod "srednjeg" nivoa sigurnosti bi mogao da proveravaš samo hash i geoIP (country code).
Kod "najnižeg" nivoa sigurnosti samo hash (koji će biti vremenski ograničen).
Takođe, možeš dodati mogućnost da korisnik upiše alternativnu email adresu koja će služiti za vraćanje izgubljenog/"hijack"-ovanog naloga. Prilikom menjanja/dodavanja alternativne email adrese obavezno je da je korisnik potvrdi, tako što će mu stići email obaveštenje sa kodom u linku. Kada korisnik klikne na taj link iz email-a "aktivira" se alternativna email adresa.

Postoje razne metode za zaštitu korisnika, a ove dodatne opcije korisnicima ulivaju veću sigurnost.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: COOKIE -mala pomoc.

[ Pregleda: 2927 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

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