Adloun

Un serveur envoie l'en-tête suivant à la connexion

Exercice supplémentaire · niveau 3 (difficile) · NSI (première), chapitre 10 — Interagir sur le Web · Le serveur, de plus près

Énoncé

Un serveur envoie l'en-tête suivant à la connexion :


Set-Cookie: session=8f3a91b2; Secure; HttpOnly; Max-Age=3600; SameSite=Lax

Corrigé

1.

`Secure`le cookie n'est envoyé que sur une connexion HTTPS ; sans lui, une seule

requête en clair suffit à le révéler</th></tr><tr style=""><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">HttpOnly</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">le cookie est invisible pour le JavaScript de la page : document.cookie ne le voit pas</td></tr><tr style=""><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">Max-Age=3600</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">il expire au bout d'une heure ; une session volée cesse de servir</td></tr><tr style="border-bottom:1.5px solid #2E2C26"><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">SameSite=Lax</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">il n'est pas envoyé lorsque la requête part d'un <em>autre</em> site, ce qui empêche un site tiers d'agir en votre nom</td></tr></table></div>

2. HttpOnly. L'injection de l'exercice précédent lisait document.cookie pour l'envoyer ailleurs ; avec HttpOnly, le script ne trouve rien à lire. Ce n'est pas une raison de ne pas échapper : c'est une seconde barrière, utile le jour où la première cède.

3. En moyenne, deux essais. Une session sur deux est ouverte parmi les numéros possibles : sur . Un simple programme trouverait une session valide en une fraction de seconde, et ce serait celle de quelqu'un.

C'est pourquoi la valeur doit être imprévisible, et non seulement unique. Avec bits tirés au hasard, l'espace compte valeurs, soit environ ; même en essayant un milliard de valeurs par seconde, on n'en explorerait pas une fraction significative avant la fin du système solaire.

Le raisonnement à retenir : un identifiant unique et un identifiant imprévisible ne sont pas la même chose. Un numéro de session croissant est parfaitement unique — et parfaitement devinable. La sécurité repose ici sur la taille de l'espace à fouiller, pas sur l'absence de collisions.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.