J'ai remarqué une faille et j'ai fait quelques recherches mais j'arrive pas à savoir comment bloquer correctement ce phénomène. Avec l'inspecteur sur un navigateur on peut modifier la valeur (value="") d'une balise <option> qui se trouve dans une balise <select>.
Un utilisateur arrive et modifie le value="3" par value="4" puis envoie le formulaire. Le script non sécurisé va insérer 4 en bdd. Mais du coup j'aurai aimé savoir comment retrouver que c'est la troisième option et que la value était égale à 3 avant la modification de l'utilisateur. Je pourrais très bien faire un script php avec des if ou un switch pour dire que si c'est pas ça, ça ou ça et bien c'est refusé mais il n'y aurai pas un moyen plus optimisé ?
Peut être un script js qui remet les valeurs par défauts dès que l'on clique sur le bouton submit ? Si vous avez d'autres idées je suis preneur.
Comme on dit toujours, "on ne doit jamais faire confiance aux données envoyées par l'utilisateur", c'est pour cela que même si tu fais des vérifications côté client tu devras ABSOLUMENT et OBLIGATOIREMENT en faire côté serveur.
Concrètement, tu devras par exemple parmi toutes les autres vérifications que tu devras faire, vérifier si la valeur que ton script php a reçu est soit égale à 1, 2 ou 3 dans ton cas et si ce n'est pas le cas tu devras renvoyer une erreur à l'utilisateur.
J'espère t'avoir éclairci, n'hésite pas si tu as d'autres questions.
ce qu'il faut dans ce cas, c'est interdire les valeurs non prévues, côté serveur. Si tu reçois "4" mais tu attendais "1", "2", ou "3", eh bien tu stoppes le traitement du formulaire à ce niveau, et tu n'insères rien.
Évitons de rajouter du JS à qui mieux mieux
(edit : grilled, avec exactement les mêmes propos )
- Edité par Lamecarlate 21 mars 2018 à 10:37:37
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Merci pour vos éclaircissements. Du coup je vais suivre vos conseil et faire mes vérification côté serveur en PHP.
Merci de vos réponses rapides
Faille sur un input Select
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)