Numérique et Sciences Informatiques1ère

Cookies et sessions
Exercices corrigés

Maîtrisez les cookies et sessions : gestion de l'état, persistance, sécurité, différences, implémentation grâce à ces 5 exercices détaillés.

Concepts & Exercices
🍪 Cookie = Clé = Valeur + Attributs
Structure d'un cookie
Exercice 1
Analyser la structure d'un cookie HTTP
Exercice 2
Comparer cookies et sessions
Exercice 3
Implémenter des cookies sécurisés
Exercice 4
Gérer la durée de vie des sessions
Exercice 5
Simuler un cycle de session utilisateur
Corrigé : Exercices 1 à 3
1 Structure cookie
Définition :

Cookie HTTP : Petit fichier texte stocké sur le poste client contenant des données associées à un site web spécifique.

Structure d'un cookie :
  1. Nom : identifiant unique du cookie
  2. Valeur : données associées au cookie
  3. Domaine : portée du cookie sur les sous-domaines
  4. Chemin : répertoires autorisés à accéder au cookie
  5. Date d'expiration : durée de vie du cookie
  6. Attributs de sécurité : HttpOnly, Secure, SameSite
Étape 1 : Création du cookie

Le serveur envoie un en-tête Set-Cookie dans la réponse HTTP

Étape 2 : Stockage côté client

Le navigateur stocke le cookie selon ses attributs

Étape 3 : Envoi automatique

Le navigateur envoie le cookie avec chaque requête correspondante

Étape 4 : Accès par le serveur

Le serveur lit le cookie dans l'en-tête Cookie de la requête

Étape 5 : Utilisation des données

Le serveur utilise les données du cookie pour personnaliser la réponse

Réponse finale :

Cookie = Nom + Valeur + Attributs de gestion

Règles appliquées :

Format standard : nom=valeur; attributs séparés par point-virgule

Limite de taille : Environ 4KB par cookie

Portée : Restreinte par domaine et chemin

2 Cookies vs Sessions
Définition :

Cookies : Données stockées côté client. Sessions : Données stockées côté serveur identifiées par un token.

Aspect Cookies Sessions
Stockage Côté client Côté serveur
Sécurité Moins sécurisé Plus sécurisé
Capacité Limité (~4KB) Illimité côté serveur
Contrôle Partiel Complet
Performance Plus rapide Plus lente
Étape 1 : Analyse des besoins

Déterminer si les données doivent être persistantes côté client

Étape 2 : Choix de la méthode

Utiliser des cookies pour les préférences, des sessions pour l'authentification

Étape 3 : Implémentation

Mettre en œuvre la solution choisie selon les besoins

Étape 4 : Sécurité

Appliquer les bonnes pratiques de sécurité pour chaque méthode

Cookies = Persistance côté client | Sessions = Persistance côté serveur
Réponse finale :

Les sessions sont plus sécurisées mais plus lourdes que les cookies

Règles appliquées :

Données sensibles : Stocker dans des sessions, pas dans des cookies

Préférences utilisateur : Stocker dans des cookies

Contrôle total : Les sessions offrent plus de contrôle au serveur

3 Cookies sécurisés
Définition :

Cookie sécurisé : Cookie avec des attributs de sécurité pour protéger les données sensibles.

Secure : Transmis uniquement via HTTPS
HttpOnly : Non accessible via JavaScript
SameSite : Protection CSRF
Domaine et chemin restreints : Limitation d'accès
Étape 1 : Identification des données sensibles

Déterminer quelles données nécessitent une protection

Étape 2 : Application de l'attribut Secure

Assurer que le cookie n'est transmis que sur des connexions HTTPS

Étape 3 : Application de HttpOnly

Empêcher l'accès via JavaScript pour éviter XSS

Étape 4 : Configuration de SameSite

Protéger contre les attaques CSRF

Étape 5 : Limitation de portée

Restreindre le domaine et le chemin d'accès

Cookie sécurisé = Secure + HttpOnly + SameSite + Restrictions
Réponse finale :

Les attributs de sécurité protègent les cookies des attaques

Règles appliquées :

Secure : Empêche l'envoi sur des connexions non chiffrées

HttpOnly : Protège contre le vol via XSS

SameSite : Empêche les requêtes cross-site

Corrigé : Exercices 4 à 5
4 Durée de vie sessions
Définition :

Durée de vie des sessions : Période pendant laquelle les données de session restent disponibles côté serveur.

Étape 1 : Initialisation de la session

Création d'un identifiant unique lors de la première visite

Étape 2 : Attribution de la durée

Définition d'un délai d'expiration (timeout) pour la session

Étape 3 : Activation de l'activité

Le timeout se réinitialise à chaque activité utilisateur

Étape 4 : Surveillance

Le serveur surveille les sessions expirées

Étape 5 : Nettoyage

Suppression des données de session expirées

Étape 6 : Notification

Avertissement de l'utilisateur de la fin de session

Durée de session = Initialisation + Timeout + Activité + Nettoyage
Réponse finale :

Les sessions ont une durée limitée pour des raisons de sécurité

Règles appliquées :

Timeout court : Pour les sessions sensibles (bancaires)

Timeout long : Pour les sessions de commodité (connexion persistante)

Nettoyage automatique : Libération des ressources serveur

5 Cycle session utilisateur
Définition :

Cycle de session : Ensemble des étapes de création, utilisation et suppression d'une session utilisateur.

Étape 1 : Accès au site

L'utilisateur visite le site pour la première fois

Étape 2 : Création de la session

Le serveur génère un ID de session unique

Étape 3 : Stockage côté serveur

Les données de session sont stockées avec l'ID

Étape 4 : Transmission de l'ID

L'ID est envoyé au client via cookie ou URL

Étape 5 : Utilisation de la session

Le client envoie l'ID avec chaque requête

Étape 6 : Mise à jour des données

Les données de session sont modifiées selon les actions

Étape 7 : Fin de session

La session expire ou est explicitement détruite

Étape 8 : Nettoyage

Les données de session sont supprimées du serveur

Cycle = Création → Utilisation → Destruction
Réponse finale :

Le cycle de session gère l'état de l'utilisateur entre les requêtes

Règles appliquées :

ID unique : Garantit l'unicité de chaque session

Sécurité : L'ID doit être difficile à deviner

Propreté : Les sessions expirées doivent être nettoyées

Cours bien détaillé
🍪 Cookie = Données + Persistance | 🔄 Session = ID + Serveur
Gestion d'état
🍪
Cookie : Données stockées côté client, envoyées avec chaque requête.
🔄
Session : Données stockées côté serveur, identifiées par un token.
🔒
Sécurité : Attributs de sécurité pour protéger les données sensibles.
⏱️
Persistance : Contrôle de la durée de vie des données de session.
💡
Conseil : Utiliser des sessions pour les données sensibles, des cookies pour les préférences
🔍
Attention : Les cookies peuvent être manipulés par l'utilisateur
Astuce : Appliquer les attributs de sécurité pour renforcer la protection
📋
Méthode : Toujours valider les données provenant de cookies
Vérification : Surveiller les sessions expirées et les nettoyer
Types de cookies :
  • Session : Temporaire, supprimé à la fermeture du navigateur
  • Persistant : Avec date d'expiration définie
  • Sécurité : Avec attributs Secure, HttpOnly, SameSite
  • Tracking : Utilisés pour le suivi utilisateur
Règles importantes :
  • HTTP est sans état, les cookies et sessions permettent de maintenir l'état
  • Les données sensibles doivent être stockées dans des sessions, pas des cookies
  • Les attributs de sécurité sont essentiels pour protéger les cookies
  • Les sessions doivent être correctement gérées pour libérer les ressources
  • Les identifiants de session doivent être suffisamment aléatoires pour être sécurisés
Cookies et sessions Web et communication distribuée