Passer au contenu principal

Qu'est-ce qu'un Cookie? 🍪

Lorsque vous accédez à un site web, vous voyez souvent le message "Acceptez-vous l'utilisation de cookies?". Je vais expliquer ce qu'est exactement un cookie et pourquoi il est nécessaire, de manière simple pour que même les débutants puissent comprendre!

Comparer les cookies à la vie quotidienne?

Comparons les cookies à un reçu.

L'histoire du reçu de café ☕

Première visite:
Client: "Un café américain s'il vous plaît"
Café: "Voici votre café et votre reçu"
[Reçu: numéro client #123, menu préféré: café américain]

Visite suivante:
Client: [Montre le reçu]
Café: "Ah, client #123! Un café américain pour vous?"

Les cookies fonctionnent de la même façon!

Première visite:
Navigateur: "C'est ma première visite sur ce site"
Site web: "Voici un cookie"
[Cookie: ID utilisateur, préférences, etc.]

Visite suivante:
Navigateur: [Montre le cookie]
Site web: "Ah, vous êtes de retour! Je maintiens votre connexion"

Cookie

  • Petit fichier texte que le site web stocke dans le navigateur
  • La façon dont le site web se "souvient" de vous
  • Taille: généralement moins de 4 Ko

Où sont stockés les cookies?

Mon ordinateur/smartphone
└── Navigateur (Chrome, Safari, etc.)
└── Stockage de cookies
├── Cookie google.com
├── Cookie lemonde.fr
└── Cookie github.com

Ce que font les cookies

1. Maintenir la connexion 🔐

Sans cookie:

1. Connexion
2. Navigation vers une autre page
3. Déconnecté... 😭
4. Reconnexion
5. Navigation vers une autre page
6. Déconnecté à nouveau... 😭

Avec cookie:

1. Connexion
2. Informations de connexion sauvegardées dans le cookie
3. Connexion maintenue même en naviguant! ✅
4. Connexion maintenue même après fermeture du navigateur! ✅

2. Se souvenir du panier 🛒

Sur un site e-commerce:
1. Ajouter le produit A au panier
2. Aller voir d'autres produits
3. Le produit A est toujours dans le panier! ✅

3. Paramètres personnalisés ⚙️

Paramètres du site web:
- Langue: Français
- Thème: Mode sombre
- Taille du texte: Grande

→ Appliqué automatiquement à la prochaine visite! ✅

4. Suivi et publicité 📊

Produits que vous avez vus:
- Chaussures A
- Sac B

→ Affichage de publicités liées sur d'autres sites

Les cookies sont stockés au format nom=valeur:

Nom: user_id
Valeur: 12345
Domaine: example.com
Chemin: /
Expiration: 2025-12-31
Sécurité: Secure, HttpOnly
session_id=abc123xyz; Domain=example.com; Path=/; Expires=Fri, 31 Dec 2025 23:59:59 GMT; Secure; HttpOnly

Types de cookies

Cookie supprimé à la fermeture du navigateur

Cycle de vie: Uniquement pendant l'exécution du navigateur
Usage: Connexion temporaire, panier
Caractéristique: Pas de date d'expiration

Exemple:

Ouvrir navigateur → Shopping → Fermer navigateur → Panier vidé

Cookie maintenu jusqu'à une date spécifiée

Cycle de vie: Jusqu'à expiration ou suppression manuelle
Usage: "Rester connecté", paramètres personnalisés
Caractéristique: Date d'expiration spécifiée

Exemple:

Cocher "Rester connecté"
→ Connexion automatique pendant 30 jours ✅

Cookie créé directement par le site web visité

Visite de example.com
→ Cookie défini par example.com
→ Utilisé uniquement sur example.com

Utilisations:

  • Maintenir la connexion
  • Panier
  • Paramètres du site

Cookie créé par un autre site web (principalement pour la publicité)

Visite de example.com
→ Exécution d'un script publicitaire sur la page
→ ads.com définit un cookie
→ Vous suit sur plusieurs sites

Utilisations:

  • Suivi publicitaire
  • Analyse du comportement utilisateur
  • Publicité personnalisée
Avertissement

Les cookies third-party sont progressivement bloqués en raison de problèmes de confidentialité! Chrome, Safari, etc. bloquent les cookies third-party.

Processus de fonctionnement des cookies

Navigateur → Requête au site web
Site web → Réponse + envoi du cookie

Réponse HTTP:
Set-Cookie: user_id=12345; Expires=...
Le navigateur stocke le cookie dans son espace de stockage
Navigateur → Nouvelle requête au site web + envoi du cookie

Requête HTTP:
Cookie: user_id=12345
Le site web lit le cookie et identifie l'utilisateur
→ "Ah, c'est l'utilisateur 12345!"

Attributs des cookies

Domain (Domaine)

Le cookie example.com
est utilisé uniquement sur example.com

Path (Chemin)

Path=/shop
→ Cookie envoyé uniquement sur le chemin /shop

Expires/Max-Age (Expiration)

Expires=2025-12-31
→ Maintenu jusqu'à cette date

Max-Age=3600
→ Supprimé après 3600 secondes (1 heure)

Secure (Sécurité)

Drapeau Secure
→ Cookie envoyé uniquement sur HTTPS
Pas envoyé sur HTTP

HttpOnly

Drapeau HttpOnly
→ Inaccessible via JavaScript
Défense contre les attaques XSS

SameSite

SameSite=Strict
→ Cookie envoyé uniquement sur le même site
Défense contre les attaques CSRF

Avantages des cookies

✅ Amélioration de l'expérience utilisateur

  • Maintien de la connexion
  • Contenu personnalisé
  • Shopping pratique

✅ Maintien de l'état

  • HTTP est sans état (Stateless)
  • Cookies permettent de maintenir l'état

✅ Implémentation simple

  • Facile à utiliser côté serveur et client
  • Presque aucune configuration supplémentaire nécessaire

Inconvénients des cookies

❌ Risques de sécurité

  • Possibilité de vol (attaques XSS, CSRF)
  • Inapproprié pour stocker des informations sensibles

❌ Problèmes de confidentialité

  • Suivi des utilisateurs possible
  • Suivi publicitaire via cookies third-party

❌ Limitation de taille

  • Limitation de 4 Ko par cookie
  • Limitation du nombre de cookies par domaine (généralement 20~50)

❌ Envoyé à chaque requête

  • Cookie inclus dans toutes les requêtes HTTP
  • Augmentation du trafic
CaractéristiqueCookieLocal StorageSession Storage
Taille4 Ko5-10 Mo5-10 Mo
Cycle de vieExpiration définiePermanentSupprimé à la fermeture de l'onglet
Envoi serveur✅ À chaque fois❌ Non envoyé❌ Non envoyé
AccèsServeur/JSJS uniquementJS uniquement
UsageAuthentification, suiviDonnées volumineusesDonnées temporaires

Quand utiliser quoi?

Cookie: Jeton de connexion, informations que le serveur doit connaître
Local Storage: Paramètres utilisateur, données hors ligne
Session Storage: Données de formulaire temporaires, informations à usage unique

Sécurité des cookies

1. Utiliser le drapeau Secure 🔒

Set-Cookie: token=abc; Secure
→ Envoyé uniquement sur HTTPS

2. Utiliser le drapeau HttpOnly 🛡️

Set-Cookie: session=xyz; HttpOnly
→ Bloquer l'accès JavaScript
→ Défense contre les attaques XSS

3. Utiliser le drapeau SameSite 🚫

Set-Cookie: id=123; SameSite=Strict
→ Défense contre les attaques CSRF

4. Interdire le stockage d'informations sensibles ⚠️

❌ Mots de passe
❌ Numéros de carte de crédit
❌ Numéro de sécurité sociale

✅ ID de session (jeton crypté)
✅ Paramètres utilisateur

Gestion des cookies

Voir les cookies dans le navigateur

Chrome:

Paramètres → Confidentialité et sécurité → Cookies et autres données de site
→ Voir tous les cookies et données de site

Outils de développement:

F12 → Onglet Application → Storage → Cookies

Supprimer les cookies

1. Supprimer uniquement les cookies d'un site spécifique
2. Supprimer tous les cookies
3. Paramétrer la suppression automatique des cookies (à la fermeture du navigateur)

Manipuler les cookies avec JavaScript

Définir un cookie:

document.cookie = "username=Jean Dupont; expires=Fri, 31 Dec 2025 23:59:59 GMT; path=/";

Lire un cookie:

console.log(document.cookie);
// "username=Jean Dupont; theme=dark; ..."

Supprimer un cookie:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

Exemples d'utilisation réelle

Exemple 1: Maintenir la connexion 🔐

// Lors de la connexion réussie
Set-Cookie: auth_token=eyJhbGc...;
Expires=Mon, 31 Jan 2025 23:59:59 GMT;
Secure;
HttpOnly;
SameSite=Strict

// À chaque requête suivante automatiquement:
Cookie: auth_token=eyJhbGc...

Exemple 2: Paramètres de thème 🎨

// L'utilisateur sélectionne le mode sombre
document.cookie = "theme=dark; max-age=31536000; path=/";

// Au chargement de la page
if (document.cookie.includes("theme=dark")) {
enableDarkMode();
}

Exemple 3: Paramètres de langue 🌏

// Sélection de la langue
Set-Cookie: lang=fr; Max-Age=31536000; Path=/

// Le serveur lit le cookie et fournit du contenu en français

Pourquoi demander le consentement aux cookies?

RGPD (Règlement général sur la protection des données):

Les sites web doivent obtenir
le consentement de l'utilisateur avant d'utiliser des cookies

Cookies essentiels vs cookies optionnels:

Essentiels: Connexion, panier (consentement non requis)
Optionnels: Suivi publicitaire, analyse (consentement requis)

Questions fréquemment posées (FAQ)

Q1: Que se passe-t-il si je bloque les cookies?

R: De nombreux sites web ne fonctionneront pas correctement.

  • Impossible de se connecter
  • Impossible d'utiliser le panier
  • Paramètres non sauvegardés

Q2: Les cookies sont-ils sûrs?

R: Oui, s'ils sont utilisés correctement.

  • Utiliser les drapeaux Secure, HttpOnly
  • Ne pas stocker d'informations sensibles
  • Utiliser HTTPS

Q3: Peut-on être infecté par un virus via les cookies?

R: Non! Les cookies sont de simples fichiers texte.

  • Ne peut pas exécuter de code
  • Ne peut pas contenir de virus

Q4: Faut-il supprimer fréquemment les cookies?

R: C'est un choix personnel.

  • Avantage: Amélioration de la confidentialité
  • Inconvénient: Déconnexion, réinitialisation des paramètres

Q5: Les cookies en mode navigation privée?

R: Utilisés temporairement.

  • Tout supprimé à la fermeture de la fenêtre privée
  • Amélioration de la prévention du suivi

L'avenir des cookies

1. Abandon des cookies third-party

Chrome, Safari, etc. bloquent les cookies third-party
→ Les entreprises publicitaires recherchent des alternatives

2. Technologies alternatives

- Privacy Sandbox (Google)
- FLoC (Federated Learning of Cohorts)
- Nouvelles normes avec protection renforcée de la vie privée

Prochaines étapes 🚀

Si vous avez compris les cookies:

  1. Qu'est-ce que le Cache? - Une autre façon de charger rapidement les données
  2. Qu'est-ce qu'un VPN? - Protection de la confidentialité en ligne
  3. Comprendre les requêtes/réponses HTTP - Comment les cookies sont envoyés

Conclusion

Les cookies sont la façon dont les sites web se souviennent de vous! 🍪

Points à retenir:

  • Cookie = Petit fichier texte
  • Stocké dans le navigateur
  • Maintien de connexion, panier, sauvegarde des paramètres
  • Attention à la sécurité (utiliser Secure, HttpOnly)
  • Les cookies third-party sont pour le suivi (peuvent être bloqués)

Grâce aux cookies, nous pouvons utiliser le web de manière pratique, mais il faut aussi faire attention à la confidentialité! 🔐