SlideShare a Scribd company logo
Programare Web Cookie -uri & sesiuni Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
Cookie -uri  Sesiuni cuprins
Mecanism standard care permite  ca un server Web sa trimita anumite informatii pe calculatorul unui client (utilizator), prin intermediul  browser -ului,  sa ceara clientului sa stocheze aceste informatii pentru ca, ulterior, navigatorul  sa returneze informatiile spre serverul WWW  Mijloc persistent de stocare a datelor  pe masina clientului Web cu scopul  de a fi accesate ulterior de pe server  cookie -uri
Utilizari: memorarea preferin t elor utilizatorilor  stocarea informa t iilor de autentificare tranzac t ii  i n  cadrul  comer t ul ui  electronic  managementul sesiunilor Web completarea automat a  a formularelor  si multe altele cookie -uri
Tipuri: Cookie -uri persistente nu v or  fi distrus e  la  i nchiderea navigatorului, ci v or  fi memorat e   i ntr-un fi s ier ,  perioada l or  de via ta  fiind stabilit a   de creator ul  cookie -urilor Cookie -uri nepersistente dispar la inchiderea  browser -ului   cookie -uri
Un  cookie  const a  dintr-o pereche  nume=valoare   Valoarea e ste un s ir de caractere codificat  i n maniera URL-urilor  Datele referitoare la un  cookie  vor fi recep t ionate  de  navigator  care men t ine o list a  de  cookie -uri apar t in i nd serverului  c are le-a trimis U n  cookie  e ste  trimis unui client incluz i nd  cimpul-antet   Set-Cookie   i ntr-un r a spuns HTTP cookie -uri
Set-Cookie:   nume = valoare ;  expires= data ;  path= cale ;  domain= domeniu ;  secure   expires  –  data  s i timpul c i nd  cookie -ul  va expira  s i va fi  s ters de pe disc  domain  –  numele simbolic al serverului  care a generat  cookie -ul path  –  specifica un subset de URL-uri  din domeniul corespunz a tor unui  cookie secure  –  cookie -ul este transmis  doar daca tranzactia este sigura (via HTTPS) cookie -uri
Un  cookie  e transmis doar dac a   i ntrune s te toate condi t iile de validitate  (se potrivesc domeniul, calea de directoare, timpul de expirare  s i securitatea canalului  de comunica t ie) Serverul va primi de la client,  i n antetul HTTP, o linie de forma:  Cookie:  nume1=valoare1; nume2=valoare2... cookie -uri
Stocarea  cookie -urilor persistente: Netscape/Mozilla fisierul  cookies  sau  cookies.txt Internet Explorer fisiere  nume@adresa.txt cookie -uri
Creare CGI (bash) #!/bin/bash  echo &quot;Set-Cookie: culoare=verde; path=/;    expires=Mon,  03 - Dec -200 7   07 : 33 : 00  GMT&quot;  ...  PHP – functia  setcookie() <?php    setcookie  ( &quot; alta_culoare &quot; ,  &quot; albastra &quot; );    echo  &quot; Un cookie de culoarea  &quot;  .  $_COOKIE [ &quot; alta_culoare &quot; ];  ?> cookie -uri
Expirare Se anuleaza valoarea si timpul, eventual resetindu-se si celelalte atribute ale  cookie -ului PHP  <?php    setcookie ( $nume_cookie, &quot;&quot;, 0, &quot;/&quot;, &quot;&quot;, 0); ?> cookie -uri
Consultare Cookie -urile se regasesc in variabila-antet  HTTP_COOKIE CGI (Perl) @envpairs = split(/;/, $ENV{'HTTP_COOKIE'});  foreach $pair (@envpairs) {    ($name, $value) = split(/=/, $pair);    $cookie{$name} = $value;  }  $fundal = $cookie{'alta_culoare'};   PHP –  cookie -ul este vazut ca o variabila:  $_COOKIE[ ' nume_cookie ' ]  (sau  $ nume_cookie ) cookie -uri
Consultare Direct in navigator prin JavaScript:  javascript:document.cookie cookie -uri
Retinem culoarea de fundal preferata  de un utilizator: define ('CULOARE_IMPLICITA', 'white');  // verificam daca exista culoarea   $culoare = $_REQUEST['culoare'];  if (!$culoare) {  // nu exista     $culoare = CULOARE_IMPLICITA; }   // setam  cookie -ul sa expire peste 10 zile   if (! setcookie (' culoare_fundal ', $culoare,  time()+ 60 * 60 * 24 * 10)) {    echo 'Cookie-ul n-a putut fi setat';  } cookie -uri | exemplu
<html> <head>   <title>Culori preferate</title>   <style type=&quot;text/css&quot;>   body { background:    <?php  echo $ _COOKIE [' culoare_fundal '];  ?>  } </style> </head> <body> <p>Alegeti culoarea de fundal preferata  ce va aparea la urmatoarea vizita:</p> cookie -uri | exemplu (cont.)
<form action=&quot;<?php echo $_SERVER['PHP_SELF']; ?>&quot; method=&quot;post&quot;>   <select name=&quot;culoare&quot;>   <?php     // generam lista de culori foreach (array ('cyan', 'yellow', 'white', 'pink', 'blue')    as $c) { echo '<option value=&quot;' . $c . '&quot;>' . $c . '</option>'; }   ?> </select> <input type=&quot;submit&quot; value=&quot;Alege culoarea&quot; /> </form> </body></html> cookie -uri | exemplu (cont.)
HTTP este un protocol  stateless , neputind oferi informatii daca cereri succesive provin de la acelasi client (eventual, de la aceeasi instanta a navigatorului) Apare necesitatea de a prezerva anumite date de-a lungul mai multor accesari inrudite Exemple: starea cosului de cumparaturi, formulare Web completate in mai multi pasi, paginarea continutului, starea autentificarii etc. sesiuni
Orice vizitator al sitului va avea asociat  un identificator unic –  session ID  ( SID ) Stocat intr-un  cookie  ori propagat via URL Unele servere de aplicatii garanteaza integritatea sesiunii si dupa o restartare  (a serverului ori a aplicatiei) Unei sesiuni i se pot asocia diverse variabile sa fie mentinute intre accesari consecutive O sesiune se poate inregistra (initia) implicit  sau explicit, in functie de serverul de aplicatii sau de configuratia stabilita sesiuni
Pentru PHP, exista functiile  session_start() ,  session_register() ,   session_id() ,   session_unregister() ,  session_destroy()   Exemplu (contorizarea accesarilor): <?php   session_start  ();   if (!isset($ _SESSION [' accesari '])) {   $ _SESSION [' accesari '] = 0; } else {   $ _SESSION [' accesari ']++; } ?> sesiuni
Cookie -uri  Sesiuni rezumat
Intrebari…?

More Related Content

PPT
Programare Web - Accesul la baze de date prin PHP
PPT
Programare Web - De la CGI la servere de aplicatii
PPT
Programare Web - PHP (o prezentare generala)
PPT
Programare Web - Arhitectura WWW
PDF
HTML5? HTML5!
PDF
HTML5 în XXX de minute
PDF
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
PDF
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
Programare Web - Accesul la baze de date prin PHP
Programare Web - De la CGI la servere de aplicatii
Programare Web - PHP (o prezentare generala)
Programare Web - Arhitectura WWW
HTML5? HTML5!
HTML5 în XXX de minute
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5

What's hot (17)

PDF
Node.js: aspecte esențiale
PDF
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
PDF
Suita de tehnologii HTML5
PDF
O lectie de anatomie Web. Disectia unui document HTML
PDF
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
PPT
Prezentare USO - Web Application Integration
PDF
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
PDF
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
PDF
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
PDF
Web 2020 09/12: Servicii Web. Paradigma REST
PDF
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
PDF
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
PDF
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
PDF
Căutarea resurselor Web
PDF
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
PDF
Limbajul JavaScript: o prezentare generală
Node.js: aspecte esențiale
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Suita de tehnologii HTML5
O lectie de anatomie Web. Disectia unui document HTML
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Prezentare USO - Web Application Integration
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
Web 2020 09/12: Servicii Web. Paradigma REST
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Căutarea resurselor Web
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Limbajul JavaScript: o prezentare generală
Ad

Similar to Programare Web - Cookie-uri si sesiuni (11)

PDF
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
PDF
Flori x
PPTX
Web Storage Performance
PPT
Proiect programare web
PDF
Arhitecturi de cacheing server side - LVLE 2009
PPTX
Analiza si evolutia vulnerabilitatilor web
PDF
DOCX
Capitolul 3
PDF
48892700 invatam-php
PPT
Felicitari personalizate
PDF
Web-ul nostru (cel de toate zilele)
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Flori x
Web Storage Performance
Proiect programare web
Arhitecturi de cacheing server side - LVLE 2009
Analiza si evolutia vulnerabilitatilor web
Capitolul 3
48892700 invatam-php
Felicitari personalizate
Web-ul nostru (cel de toate zilele)
Ad

More from Sabin Buraga (20)

PDF
Web 2020 01/12: World Wide Web – aspecte arhitecturale
PDF
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
PDF
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
PDF
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
PDF
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
PDF
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
PDF
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
PDF
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
PDF
STAW 01/12: Arhitectura aplicaţiilor Web
PDF
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
PDF
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
PDF
STAW 04/12: Programare Web: Node.js
PDF
STAW 05/12: Arhitectura navigatorului Web
PDF
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
PDF
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
PDF
STAW 08/12: Programare Web. Suita de tehnologii HTML5
PDF
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
PDF
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
PDF
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
PDF
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 04/12: Programare Web: Node.js
STAW 05/12: Arhitectura navigatorului Web
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...

Programare Web - Cookie-uri si sesiuni

  • 1. Programare Web Cookie -uri & sesiuni Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
  • 2. Cookie -uri Sesiuni cuprins
  • 3. Mecanism standard care permite ca un server Web sa trimita anumite informatii pe calculatorul unui client (utilizator), prin intermediul browser -ului, sa ceara clientului sa stocheze aceste informatii pentru ca, ulterior, navigatorul sa returneze informatiile spre serverul WWW Mijloc persistent de stocare a datelor pe masina clientului Web cu scopul de a fi accesate ulterior de pe server cookie -uri
  • 4. Utilizari: memorarea preferin t elor utilizatorilor stocarea informa t iilor de autentificare tranzac t ii i n cadrul comer t ul ui electronic managementul sesiunilor Web completarea automat a a formularelor si multe altele cookie -uri
  • 5. Tipuri: Cookie -uri persistente nu v or fi distrus e la i nchiderea navigatorului, ci v or fi memorat e i ntr-un fi s ier , perioada l or de via ta fiind stabilit a de creator ul cookie -urilor Cookie -uri nepersistente dispar la inchiderea browser -ului cookie -uri
  • 6. Un cookie const a dintr-o pereche nume=valoare Valoarea e ste un s ir de caractere codificat i n maniera URL-urilor Datele referitoare la un cookie vor fi recep t ionate de navigator care men t ine o list a de cookie -uri apar t in i nd serverului c are le-a trimis U n cookie e ste trimis unui client incluz i nd cimpul-antet Set-Cookie i ntr-un r a spuns HTTP cookie -uri
  • 7. Set-Cookie: nume = valoare ; expires= data ; path= cale ; domain= domeniu ; secure expires – data s i timpul c i nd cookie -ul va expira s i va fi s ters de pe disc domain – numele simbolic al serverului care a generat cookie -ul path – specifica un subset de URL-uri din domeniul corespunz a tor unui cookie secure – cookie -ul este transmis doar daca tranzactia este sigura (via HTTPS) cookie -uri
  • 8. Un cookie e transmis doar dac a i ntrune s te toate condi t iile de validitate (se potrivesc domeniul, calea de directoare, timpul de expirare s i securitatea canalului de comunica t ie) Serverul va primi de la client, i n antetul HTTP, o linie de forma: Cookie: nume1=valoare1; nume2=valoare2... cookie -uri
  • 9. Stocarea cookie -urilor persistente: Netscape/Mozilla fisierul cookies sau cookies.txt Internet Explorer fisiere nume@adresa.txt cookie -uri
  • 10. Creare CGI (bash) #!/bin/bash echo &quot;Set-Cookie: culoare=verde; path=/; expires=Mon, 03 - Dec -200 7 07 : 33 : 00 GMT&quot; ... PHP – functia setcookie() <?php setcookie ( &quot; alta_culoare &quot; , &quot; albastra &quot; ); echo &quot; Un cookie de culoarea &quot; . $_COOKIE [ &quot; alta_culoare &quot; ]; ?> cookie -uri
  • 11. Expirare Se anuleaza valoarea si timpul, eventual resetindu-se si celelalte atribute ale cookie -ului PHP <?php setcookie ( $nume_cookie, &quot;&quot;, 0, &quot;/&quot;, &quot;&quot;, 0); ?> cookie -uri
  • 12. Consultare Cookie -urile se regasesc in variabila-antet HTTP_COOKIE CGI (Perl) @envpairs = split(/;/, $ENV{'HTTP_COOKIE'}); foreach $pair (@envpairs) { ($name, $value) = split(/=/, $pair); $cookie{$name} = $value; } $fundal = $cookie{'alta_culoare'}; PHP – cookie -ul este vazut ca o variabila: $_COOKIE[ ' nume_cookie ' ] (sau $ nume_cookie ) cookie -uri
  • 13. Consultare Direct in navigator prin JavaScript: javascript:document.cookie cookie -uri
  • 14. Retinem culoarea de fundal preferata de un utilizator: define ('CULOARE_IMPLICITA', 'white'); // verificam daca exista culoarea $culoare = $_REQUEST['culoare']; if (!$culoare) { // nu exista $culoare = CULOARE_IMPLICITA; } // setam cookie -ul sa expire peste 10 zile if (! setcookie (' culoare_fundal ', $culoare, time()+ 60 * 60 * 24 * 10)) { echo 'Cookie-ul n-a putut fi setat'; } cookie -uri | exemplu
  • 15. <html> <head> <title>Culori preferate</title> <style type=&quot;text/css&quot;> body { background: <?php echo $ _COOKIE [' culoare_fundal ']; ?> } </style> </head> <body> <p>Alegeti culoarea de fundal preferata ce va aparea la urmatoarea vizita:</p> cookie -uri | exemplu (cont.)
  • 16. <form action=&quot;<?php echo $_SERVER['PHP_SELF']; ?>&quot; method=&quot;post&quot;> <select name=&quot;culoare&quot;> <?php // generam lista de culori foreach (array ('cyan', 'yellow', 'white', 'pink', 'blue') as $c) { echo '<option value=&quot;' . $c . '&quot;>' . $c . '</option>'; } ?> </select> <input type=&quot;submit&quot; value=&quot;Alege culoarea&quot; /> </form> </body></html> cookie -uri | exemplu (cont.)
  • 17. HTTP este un protocol stateless , neputind oferi informatii daca cereri succesive provin de la acelasi client (eventual, de la aceeasi instanta a navigatorului) Apare necesitatea de a prezerva anumite date de-a lungul mai multor accesari inrudite Exemple: starea cosului de cumparaturi, formulare Web completate in mai multi pasi, paginarea continutului, starea autentificarii etc. sesiuni
  • 18. Orice vizitator al sitului va avea asociat un identificator unic – session ID ( SID ) Stocat intr-un cookie ori propagat via URL Unele servere de aplicatii garanteaza integritatea sesiunii si dupa o restartare (a serverului ori a aplicatiei) Unei sesiuni i se pot asocia diverse variabile sa fie mentinute intre accesari consecutive O sesiune se poate inregistra (initia) implicit sau explicit, in functie de serverul de aplicatii sau de configuratia stabilita sesiuni
  • 19. Pentru PHP, exista functiile session_start() , session_register() , session_id() , session_unregister() , session_destroy() Exemplu (contorizarea accesarilor): <?php session_start (); if (!isset($ _SESSION [' accesari '])) { $ _SESSION [' accesari '] = 0; } else { $ _SESSION [' accesari ']++; } ?> sesiuni
  • 20. Cookie -uri Sesiuni rezumat