Bonjour,
Comment protéger un formulaire des injections SQL ?
Merci,
Christophe
Bonjour,
Comment protéger un formulaire des injections SQL ?
Merci,
Christophe
Il a plusieurs solutions, ça dépend des paramétrages et de la conception de ton application.
Dans tous les cas : valider l'input, valider ce que tu vas recevoir. Tu demandes un champs Age ? Ce doit être un chiffre entre p.ex. 5 et 125. Pas plus, pas de texte non plus.
Tous les champs qui vont être complétés devront, *toujours*, avoir une taille maximale (un prénom; max 25 car., une rue, max 50, ...); tu vas interdire les balises html, etc.
Il existe quantité de fonctions en php pour faire cela.
Cherche sur "user form validation" ou "sanitization" sur google. Voici un lien parmis d'autres : http://www.dreamhost.com/dreamscape/...-the-beginner/
Christophe (cavo789)
Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
Hello
IMPORTANT !
On a tendance à l'oublier (ou à ne pas le savoir), mais la vérification d'une saisie utilisateur doit TOUJOURS être [re]faite sur le serveur.
Une validation côté du client (navigateur web) ne servira à rien d'autre qu'au confort de l'utilisateur. Elle peut-etre utilisée pour mettre en évidence une mauvaise saisie sans refaire une demande au serveur, par exemple, mais en aucun cas ne peut etre considérée comme fiable. Elle est trèèèèèèèèèèèès simplement contournable !
Nico
si ton travail est difficile et tes résultats sont minces
n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.
Le moyen le plus sur et le plus simple (donc le meilleur) à mettre en place, est d'utiliser les requêtes préparées.
Un message utile vous a aidé ? N'oubliez pas le
www.simplifions.fr - Simplifier vos comptes entre amis !
+1
Pour les néophytes, on appelle aussi ces requètes des "procédures stoquées" (souvent codées en SQL).
C'est ainsi qu'on peut forcer les vérifications de parametres directement lors de l'insertion dans la bdd, par la bdd
On passe directement à la BDD le nom de la procédure et les paramètres qu'on veut. La BDD va alors pouvoir vérifier les critères qu'on souhaite, et refuser la demande si ca ne correspond pas à ce qu'on attend (vérification du type des arguments, de leur longueur...).
Nico
edit : je n'avais pas vu que le précédent message comportait le lien...
si ton travail est difficile et tes résultats sont minces
n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.
Non, les procédures stockées et les requêtes préparées sont deux mécanismes distincts, même s'il est vrai que l'utilisation des procédures stockées protège également contre les SQl Injection (mais c'est plus lourd à mettre en place).Pour les néophytes, on appelle aussi ces requètes des "procédures stoquées" (souvent codées en SQL).
Un message utile vous a aidé ? N'oubliez pas le
www.simplifions.fr - Simplifier vos comptes entre amis !
En effet, les procédures stockées (stored procedure en Anglais) sont une excellente option mais cela rends la solution bien plus difficilement transposables sur un autre site.
Il faut aussi s'assurer que le SGBD est compatible : MySQL, MySQLi, etc. Il faut que la procédure stockée puisse être récrée et utilisable sur chaque système cible.
Christophe (cavo789)
Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager