Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →