JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 12 · Application directe du cours
Le prix a changé
Projet : la Librairie interactive · niveau 3 (difficile)
Énoncé
Le client ouvre la page Panier : total 83,00 €. Pendant qu'il remplit le formulaire, la Librairie augmente le prix d'un livre sur le serveur. Que se passe-t-il à l'envoi, avec le code du chapitre ? Que verrait le client si le navigateur envoyait les prix avec la commande et que le serveur leur faisait confiance ? Proposer une amélioration de la page de confirmation.
Corrigé
La page n'envoie que des ISBN et des quantités ; le serveur calcule le total avec ses prix, ceux du moment. La commande est enregistrée au nouveau prix, et la confirmation affiche le total du serveur, différent des 83,00 € que le client a vus : il le découvre trop tard, mais le montant facturé est cohérent. Si le serveur faisait confiance aux prix envoyés par le navigateur, n'importe qui pourrait commander à 0,01 € en modifiant la requête (avec les outils de développement, ou curl) : c'est une faille, pas une option. Amélioration : avant d'afficher la confirmation, comparer le total du serveur à celui que la page affichait et, s'ils diffèrent, le dire explicitement (« Le prix d'un livre a changé : le total de votre commande est de 89,00 € au lieu de 83,00 €. »). Mieux encore, le serveur pourrait recevoir le total vu par le client et refuser la commande (400) s'il ne correspond plus, pour que le client confirme le nouveau prix avant d'être engagé.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.