-
Vérifier type variable
Bonjour,
Dans le cadre d'un projet, je gère une base de données et tous les accès à celle-ci..
Or on m'a reproché que dans mes procédures stockées je devrais vérifier les variables passées en paramètres ! Et donc j'ai cherché sans succès..
Je voudrais savoir admettons si je passe une variable de type "DateTime" à ma procédure comment je fais pour vérifier si cette variable est bien un "datetime" ?
De même pour un "varchar", un "booléen" et tous autres type de variables..
Quelqu'un peut-il m'éclaircir ??
Mercii beaucoup.
-
salut,
pour les date et heure ou types numérique, tu t'en fous... soit un cast implicite se produit soit ça générera une erreur...
pour éradiquer l'injection externe, il suffit de créer tes procédures pour qu'elles s'exécute avec les droits de l'utilisateur qui la crée (généralement l'équivalent de root, ou un utilisateur spécifique à ta bd et ayant tous les droits suffisants) et coté php, tu utilises un utilisateur mysql n'ayant que "grant execute" comme droit sur la bd...
le seul risque restant est l'injection dans une chaine de caractère que seul l'échappement de certains caractères ou leur remplacement va empêcher...
tu peux utiliser l'opérateur regex pour éventuellement voir si une ou des expressions interdites risquent d'être insérées..., là tu peux soit générer une erreur, un warning ou chercher à traiter le problème...
comme ça tu isoles bien mysql de ton php...