0% ont trouvé ce document utile (0 vote)
7 vues31 pages

Cookies et Sessions en PHP

Transféré par

michellinenan15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues31 pages

Cookies et Sessions en PHP

Transféré par

michellinenan15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PHP

Cookies et Sessions
Laurent d’Orazio
Université de Rennes 1 – IRISA
2022-2023
Plan

I. Contexte
II. Cookies
III. Sessions

2022/2023 PHP - Cookies et Sessions 2


Plan

I. Contexte
II. Cookies
III. Sessions

2022/2023 PHP - Cookies et Sessions 3


Mémorisation des données entre les pages (1)

• Exemple
• Récupération de l’identifiant d’un utilisateur
• Vérification / utilisation de son identifiant
• Méthodes de transfert get et post
• Transfert de données entre pages
• Echange de l'identifiant de l'utilisateur à chaque fois
• Lourdeur du procédé
• Problème de sécurité

2022/2023 PHP - Cookies et Sessions 4


Mémorisation des données entre les pages (2)

• Objectif
• « Variables globales »
• Zone d'échange entre différentes pages
• Mécanismes
• Côté client
• Cookies
• Côté serveur
• Sessions

2022/2023 PHP - Cookies et Sessions 5


Plan

I. Contexte
II. Cookies
A. Définition et principe
B. Cas d’usage
C. Fonctionnement
D. Caractéristiques
E. Utilisation
F. Avantages et inconvénients
III. Sessions

2022/2023 PHP - Cookies et Sessions 6


A. Définition et principe

• Fichier (de petite taille) de données écrit par un script du serveur stocké sur le client
• Ordre du serveur en réponse à une requête HTTP
• Reçu et interprété par le navigateur
• Données stockées sous forme texte sur la machine
• Mémorisation de l'information entre deux visites
• A chaque requête HTTP, le(s) cookie(s) est/sont transmis
• Seuls les cookies du site concerné sont envoyés

2022/2023 PHP - Cookies et Sessions 7


B. Cas d’usage

• Exemples
• Identifiant d'un utilisateur (déconseillé)
• Préférences / options sur le site
• Pages visitées par un client

2022/2023 PHP - Cookies et Sessions 8


C. Fonctionnement

2022/2023 PHP - Cookies et Sessions 9


D. Caractéristiques (1)

• Caractéristiques :
• Nom
• Valeur
• Date de validité
• Chemin
• Domaine/serveur
• Option secure
• Transmission uniquement si connexion HTTPS si valeur true
• Option HTTPOnly
• Accessibilité uniquement par protocole HTTP si valeur true

2022/2023 PHP - Cookies et Sessions 10


D. Caractéristiques (2)

• Exemple
• Nom utilisateur
• Valeur [Link]
• Date de validité Sunday, 07-Oct-18 23:12:40 GMT
• Chemin null
• Domaine/serveur null
• Option secure false
• Option HTTPOnly true

2022/2023 PHP - Cookies et Sessions 11


E. Utilisation
Accès
• Syntaxe
• $_COOKIE
• Exemple
• $_COOKIE("my_cookie")

2022/2023 PHP - Cookies et Sessions 12


E. Utilisation
Initialisation
• Syntaxe
setcookie(<nom>,<valeur>,<validité>,<chemin>,<domaine>,<secure>,<httponly>)
• Exemple
setcookie("mon_cookie",
"valeur du cookie",
time()+3600,
null,
null,
false,
true
);

2022/2023 PHP - Cookies et Sessions 13


E. Utilisation
Effacement
• Méthode 1
• setcookie avec une valeur vide

• Méthode 2
• Affectation avec les mêmes paramètres

2022/2023 PHP - Cookies et Sessions 14


F. Avantages et inconvénients (1)

• Avantages
• Conservation des données entre deux visites
• Contrôle sur la durée de vie des données
• Mort programmée par le serveur
• Possibilité de destruction des données par le client
• Nettoyage par le navigateur

2022/2023 PHP - Cookies et Sessions 15


F. Avantages et inconvénients (2)

• Inconvénients
• Possibilité de refus des cookies par le client
• Quantité de données stockées limitée*
• Taille : 4Ko par cookie
• Nombre
• 300 cookies par navigateur
• 20 cookies par serveur (pour un même client)
• Problème de sécurité
• Echange de données entre client et serveur
• Par défaut, aucune sécurisation
• Possibilité de sécuriser le transfert
• Données stockées chez le client
• Possibilité de récupérer le cookie d'un autre *Possibilité d’utilisation des cookies comme clé d’entrée
à une table dans un SGBD et donc transmission de plus
de données
2022/2023 PHP - Cookies et Sessions 16
Plan

I. Contexte
II. Cookies
III. Sessions
A. Principes
B. Fonctionnement
C. Utilisation
D. Avantages et inconvénients

2022/2023 PHP - Cookies et Sessions 17


A. Principes

• Correspond à une visite d'un utilisateur


• Identifiant = SID (Session IDentifier)
• Identifiant attribué aléatoirement au début de la visite
• Identifiant transmis à chaque page durant la visite
• L'identifiant permet d'échanger des données entre pages
• Zone de stockage attribuée pour l'identifiant sur le serveur
• Une page peut déposer des informations dans la zone
• Une autre peut récupérer ces informations dans la zone
• L'identifiant doit être transmis entre les pages
• Plusieurs méthodes de transmission

2022/2023 PHP - Cookies et Sessions 18


B. Fonctionnement

2022/2023 PHP - Cookies et Sessions 19


C. Utilisation
Ouverture de session
• Fonction session_start
• Création d'un nouvel SID unique de forme aléatoire
• Si l'utilisateur n'en a pas
• Sinon, récupération du SID de l'utilisateur
• Récupération des données de la session à partir du SID
• Procédure totalement automatique
• Remarque
• Récupération de l’identifiant de session avec session_name()

2022/2023 PHP - Cookies et Sessions 20


C. Utilisation
Stockage et manipulation de données
• Tableau associatif _SESSION
• Sauvegarde des informations
• Association variable-valeur
• Enregistrement
$_SESSION["nom_variable"] = valeur;

• Lecture des informations stockées


$_SESSION["nom_variable"];

2022/2023 PHP - Cookies et Sessions 21


C. Utilisation
Suppression d’une session
• Syntaxe
session_destroy();
• Fonctionnement
• Données de la session détruites
• SID rendu invalide

• Remarque
• Utilisation de ces commandes avant tout affichage
• Avant balise <html>
• Avant toute commande echo

2022/2023 PHP - Cookies et Sessions 22


C. Utilisation
Test définition d’un paramètre
• Syntaxe
isset($_SESSION["nom"])
• Fonctionnement
• Retourne vrai si paramètre défini, faux sinon

2022/2023 PHP - Cookies et Sessions 23


D. Avantages et inconvénients (1)

• Avantages
• Application dans tous les cas (pas possibilité de refus du client)
• Quantité de données stockées non limitée
• Sécurité
• Pas d'échange de données avec le client
• Données uniquement stockées sur le serveur
• Données consultables seulement à partir du SID

2022/2023 PHP - Cookies et Sessions 24


D. Avantages et inconvénients (2)

• Inconvénients
• Durée de vie limitée au temps de la visite
• Impossibilité de conservation des données entre deux visites
• Possibilité de fermeture de la session pendant la visite
• Durée de vie de la session programmée
• Réinitialisation du compteur de vie à chaque accès au site
• Aucun accès pendant une durée donnée
• ⇒ fermeture de la session

2022/2023 PHP - Cookies et Sessions 25


E. Exemple

• Tracer la connexion d’un utilisateur


//Activation du mécanisme de session
session_start();
//Si début est vide ou non défini, c'est la première fois et on enregistre l'heure
//if(empty($_SESSION["debut"])){
if(!isset($_SESSION["debut"])){
$_SESSION["debut"] = time() ;
}
if(!isset($_SESSION["nb_req"])){
//if(empty($_SESSION["nb_req"])){
$_SESSION["nb_req"] = 0 ;
}
//Calcul du temps de connexion
$temps = time() - $_SESSION["debut"] ;
//Incrémentation du nombre de requêtes
$_SESSION["nb_req"]++ ;

2022/2023 PHP - Cookies et Sessions 26


Bibliographie

• A. Delhay-Lorrain, cours web serveur, IUT de Lannion, Lannion


• B. Bachelet, cours php, IUT d’Allier, Vichy
• [Link]
• [Link]

2022/2023 PHP - Cookies et Sessions 27


2022/2023 PHP - Cookies et Sessions 28
Sessions

• Liaison (identifiant - données sur le serveur)


• stockage mémoire, disque, base de données, ...
• format propriétaire, XML (WDDX), ...
• Transmission de l’identifiant
• par cookie ou ré-écriture (automatique)

2022/2023 PHP - Cookies et Sessions 29


Sessions en PHP

• Un support transparent
• compilation avec --enable-trans-sid
• transmission via les paramètres CGI (≠ cookies)

2022/2023 PHP - Cookies et Sessions 30


Sessions en PHP

• Génération aléatoire des identifiants


• spécification possible de sources d’entropie
• Stockage des informations de session
• sur fichier (par défaut) ou base de données
• Format de stockage
• format interne PHP (par défaut) ou WDDX
• Garbage collector automatique

2022/2023 PHP - Cookies et Sessions 31

Vous aimerez peut-être aussi