On vient de me coller un site de commande de bière en ligne auprès d'un producteur conçu aux alentours de 2006. Je dois changer la gestion des FDP en fonction du volume acheté.
À parcourir le système de commandes (tous les produits avec des inputs de quantité, et un total tout en bas), je vois du JS en nombre pour actualiser les totaux en temps réel, mais peu de php. D'ailleurs le total de la commande s'affiche dans un input readonly... bon, pourquoi pas...
Mais à mieux fouiller sur le passage de la commande de la page "commande" et la page "panier / mode de paiement", je remarque que les données sont simplement envoyées par le formulaire par $_POST... sans passer à la moulinette par php au passage. Je teste mes l337 sk1llz² en ouvrant Firebug et retirant le "readonly" pour entrer la valeur que je veux... et hop, je peux commander pour 500€ de bière au prix de 1€. Le plus beau est que la page suivante est une page de confiance qui envoie les données au système bancaire pour les paiements par carte.
Je ne pense pas que 500 pour 1€ pourrait passer, mais je me demande si les producteurs vérifient soigneusement les commandes passées sur internet... si je faisais acheter pour 350€ de liquide et en payais 250, avec les tarifs dégressifs et de nombreuses marques diverses plutôt qu'une livraison uniforme, est-ce qu'ils remarqueraient cela ?
2006 les enfants, 2006. De quand date donc
"Never trust user input" et "Always check datas" ?

« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »
— Legion, geth trolleur à portée galactique