dans mon code php je demandais à l'utilisateur de choisir le jour, le mois et l'année de certains champs de liste déroulante où les valeurs où 1, 2, 3 etc au lieu de 01, 02, 03.dates lors de l'enregistrement de base de données MySQL
ceux-ci ont ensuite été combinés pour former une chaîne comme "AAAA-MM-DD" pour l'insertion dans un db (dans un champ de date). Ayant manqué le 0 initial, je pensais envoyer des chaînes dans le mauvais format, par exemple "YYYY-MD" ou "YYYY-MM-D", mais j'ai remarqué qu'elles apparaissaient dans le bon format dans la base de données de toute façon: même si je soumettais AAAA-MD, il est apparu comme AAAA-MM-JJ
est-ce le comportement normal de MySQL si oui, puis-je éviter tout se soucier de changer le code dans mon application
intéressant - pourquoi cela offrirait une meilleure protection? – Patrick
Je ne connais pas votre scénario exact, mais si vous venez de «regrouper» les numéros sélectionnés et que vous ne les désinfectez pas/ne les validez en aucune façon, vous êtes prêt pour l'injection. solution facile dans votre cas sans utiliser mktime et la date est d'utiliser simplement 'intval()' ou '(int)' – knittl
ah ok. J'utilise les enregistrements actifs de codeigniter pour que les requêtes soient automatiquement échappées, et ça devrait aller. Cependant, puisque j'utilise des menus déroulants pour sélectionner les numéros à «mettre ensemble». Une liste déroulante peut-elle être piratée pour faire une injection SQL? Je pense que seuls les champs de texte pourraient être utilisés, mais il vaut la peine de vérifier. – Patrick