Adloun

NSI (première) · Chapitre 10 · Exercice de TD

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

Interagir sur le Web · Client, serveur, GET et POST · niveau 2

É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.

  • Répondre ce qu'il faut. La vérification demande une date de naissance : il suffit d'en saisir une autre. Aucune compétence technique.
  • Modifier la page. Les outils de développement permettent d'effacer le gestionnaire, de changer la valeur d'un champ caché ou de rendre visible ce qui était masqué. La page est un document que l'utilisateur possède.
  • Ne pas ouvrir la page du tout. La requête finale peut être envoyée directement, depuis un terminal :

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.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →