Lucrul cu sesiuni in PHP Modaliti Cookie Spaiu
- Slides: 28
Lucrul cu “sesiuni” in PHP
Modalități Cookie Spațiu limitat de date Session Spațiu nelimitat Salvare nesigură la nivel Securitate acceptabilă la de client nivel de server Controlabil de către utilizator Utilizatorul nu are control
Cum lucrează o sesiune? Fiecare utilizator primeste un identificator unic un session id. Ex: 26 fe 536 a 534 d 3 c 7 cde 4297 abb 45 e 275 a
Cum lucrează o sesiune? Acest session id este salvat într-un cookie sau trimis prin intermediul URL paginilor pe care userul le vizualizează. Datele care se salvează (ex user, id, stare, etc. ) is sunt stocate pe server într-o varoabilă PHP superglobală
Pornirea unei sesiuni session_start(); PHP caută un sesion id valid în variabilele superglobale $_COOKIE sau $_GET Dacă nu găseste un nou session id este creat
Pornirea unei sesiuni session_start(); Funcția trebuie apelată prima. .
Salvarea variabilelor de sesiune Variabila superglobală $_SESSION (array asociativ) se va utiliza pentru a memora valori EX. $_SESSION[‘id’] = $id; $_SESSION[‘logat’] = $log;
Citirea valorilor Valorile se citesc din vectorul asociativ $_SESSION EX. $id = $_SESSION[‘id’]; $log = $_SESSION[‘logat’]
Propagarea sesiunii Id sesion trebuie să se propage în paginile pe care le vizitează utilizatorul Se face în două moduri. It can do this in two ways: Prin Cookie Prin URL
Propagarea cu ajutorul cookieului Pe mașina utilizatorului se salvaeză în temporary internet folder un cookie care conține id-ul sesiunii (session id) Se citeste de fiecare dată când se apelează funcția session_start(); pentru inițializarea sesiunii. Comportare standard: cookie-ul expiră când se închide browserul. Proprietățile coockie-ului pot fi modificate cu session_set_cookie_params
Propagarea prin URL Sesiunea (nr. ei) se trimite prin intermediul URL-ului (…baburiba/index. php? sid=26 fe 536 a 534 d 3 c 7 cde 4297 abb 45 e 275 a) PHP oferă o constantă globală pentru a trimite către orice link intern id-ul sesiunii: SID. Ex. <a href=“baburiba. php? <? =SID? >">Pagina baburib</a>
Pe care s-o alegem. . ? În cazul instalării default a PHP pe server se utilizează ambele metode. se verifică mai întâi dacă userul are cookies enabled. dacă sunt pe on atunci PHP utilizează pentru propagare cookie-urile. Altfel utilizează propagarea prin URL
Distrugerea unei sesiuni De obicei nu e nevoie dar dacă vrem: // stergbem variabilele de sesiune $_SESSION = array(); // stergem cookie-ul care s-a folosit în salvarea sesiunii if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // distrugem sesiunea session_destroy(); // evitam reutilizare SID prin redirectarea // catre pagina care a generat sesiunea header('Location: '. $_SERVER['PHP_SELF']);
Expirarea unei sesiuni Default: sesiuni PHP expiră: După o anumită perioadă de inactiviate (default 1440 s), procesul de colectare a gunoiuluio propriu PHP-ului șerge variabilele de sesiune Dacă s-a propagat prin cookie atunci se setează un cookie care se distruge când se închide browserul. Dacă s-a propagat prin URL atunci session id se pierde când se părăseste situl.
Session Hi-jacking O problemă de securitate: dacă un utilizator rău reușește să obțină o sesiune activă care nu e a lui. . . Ex. user 1 navighează cu cookies disabled (propagare prin URL). user 1 se loghează. user 1 trimite unui “prieten” un link interesant prin mail. User 2 copiază URL si a obținut id-ul sesiunii user 1 user 2 înainte ca id-ul de sesiune să fie distrus fură astfel sesiunea user-ului 1 user 2 este de acuma logat. . . !!
… o povață … Dacă vă gândiți la securitate atunci trebuie să vă fie clar că sesiunile propagate prin URL pot fi compromise. Propagarea prin cookie este mai sigură dar. . .
Cookie (biscuit)
Ce este un cookie? Este un fisier text salvat pe calculatoarul utilizatorului. Fiecare cookie este specific pentru un anumit domeniu. Orice cookie foloseste până la 4 k. B de date. Pentru un anumit domeniu se pot utiliza până la 20 de cookie-uri.
Cum funcționează? Pas 1: Utilizatorul face o cerere către www. baburiba. ro Cererea paginii
Pas 2: Vine un răspuns de la www. baburiba. ro în format html și totodată se trimite si cookie-ul care conține date xhtml cookie data
Pas 3: La orice cerere a utilizatorului către domeniul www. baburiba. ro se trimite automat si cookie-ul salvat pe calculatorul utilizatorului asociat acestui domeniu. page request cookie data
Setarea unui cookie setcookie(name [, value [, expire [, path [, domain [, secure]]]]]) name = cookie name value = data to store (string) expire = UNIX timestamp when the cookie expires. Default is that cookie expires when browser is closed. path = Path on the server within and below which the cookie is available on. domain = Domain at which the cookie is available for. secure = If cookie should be sent over HTTPS connection only. Default false.
Exemplu setcookie(‘nume’, ’Baburiba’) se va seta un cookie numit nume având valoarea Baburiba. Va fi disponibil pentru toate paginile din directorul curent sau subdirectoare ale paginii care l-a setat. Expiră când se va închide browserul.
Exemplu 2 setcookie(‘nota’, ’ 10’, time()+60*60 *24*30) se va seta un cookie numit nota având valoarea 10. Va fi disponibil pentru toate paginile din directorul curent sau subdirectoare ale paginii care l-a setat. Expiră peste 2592000 de secunde
Citirea datelor dintr-un cookie Toate valorile sunt salvate în variabial superglobală $_COOKIE: $variable = $_COOKIE[‘cookie_name’] sau $variable = $HTTP_COOKIE_VARS[‘cookie_name’]; Ex: $nume = $_COOKIE[‘nume’];
Stergerea unui cookie Pentru a șterge un cookie se suprascrie acel cookie cu ceva care expiră în trecut. . setcookie(‘cookie_name’, ’’, time()-86400) În principiu orice număr poate fi folosit pentru a se scade din valoarea returnată de time() dar având în vedere că timpul local diferă de pe un calculator pe altul. . . mai bine scădem o zi sau două
Important Deoarece setarea unui cookie implică trimiterea header-ului trebuie neapărat să fie scris pe prima linie a codului php corect gresit
To be continued Să ne uităm la firefox mai atent. .
- Cookie monster who stole the cookie
- Cookie monster images
- Cookie lemon cookie feedback
- Cookie lemon cookie feedback
- Texte cu tema cititul
- Modaliti
- Modaliti
- Php cookie
- Php cookie
- Www.facebook.com.php
- Php php://input
- Coeficientii calorici
- Lucrul mecanic al fortei de rezistenta
- Lucrul mecanic este o marime fizica de stare
- Ce înțelegeți prin lucrul mecanic
- Lucrul mecanic al fortei elastice
- Abc smart cookie
- 6 types of cookies and examples
- Oreo cookie plate tectonics lab answers
- Xss cookie stealing
- Subject countable or uncountable
- Document.setcookie
- Idm cookie
- Kristen's cookie company
- Cookie bite hearing loss
- High performance liquid chromatography principle
- Please dont eat my cookie
- A cookie is often used to identify a
- Cookie cutters