Adloun

Un site vérifie l'âge de l'utilisateur uniquement en JavaScript

Exercice de TD · niveau 2 · NSI (première), chapitre 10 — Interagir sur le Web · Client, serveur, GET et POST

Énoncé

Un site vérifie l'âge de l'utilisateur uniquement en JavaScript. Décrire comment contourner cette vérification, et ce que le serveur aurait dû faire.

Corrigé

Trois façons de contourner, de la plus simple à la plus radicale.


curl -X POST https://exemple.fr/acces -d "age=42"

Le serveur reçoit alors une requête parfaitement conforme, sans qu'aucune ligne de JavaScript n'ait jamais été exécutée. C'est le point décisif : le serveur ne peut pas savoir si la page a été utilisée.

Ce que le serveur aurait dû faire. Refaire la vérification lui-même, à la réception, et la refaire à chaque requête protégée — pas seulement à la première. En pratique il ne peut pas se contenter de croire un champ age envoyé par le client : il faut que l'âge vienne d'une information dont lui répond (un compte vérifié, une session ouverte après une preuve d'identité).

Ce que cet exercice ne dit pas : qu'il faudrait supprimer la vérification côté client. Elle reste utile — elle prévient l'utilisateur honnête immédiatement, sans aller-retour. Elle est une ergonomie, jamais une barrière. C'est la formulation exacte du cours : le serveur ne fait jamais confiance à ce que le client lui envoie.

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.