IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Protections contre les injections


Sujet :

Sécurité

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Points : 372
    Points
    372
    Par défaut Protections contre les injections
    Bonjour,

    Comment protéger un formulaire des injections SQL ?

    Merci,
    Christophe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Il a plusieurs solutions, ça dépend des paramétrages et de la conception de ton application.

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    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

  4. #4
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut IMPORTANT ! validation d'une saisie utilisateur
    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.

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    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 !

  6. #6
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut

    Citation Envoyé par Spartacusply Voir le message
    Le moyen le plus sur et le plus simple (donc le meilleur) à mettre en place, est d'utiliser les requêtes préparées.
    +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.

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Pour les néophytes, on appelle aussi ces requètes des "procédures stoquées" (souvent codées en SQL).
    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).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  8. #8
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    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).
    OK, mea culpa, je n'utilisais jusqu'ici que les "proc stoc", que ce soit chez moi ou dans le cadre de mon travail

    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.

  9. #9
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    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

Discussions similaires

  1. [MySQL] protection contre les injections SQL
    Par drick35 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/02/2013, 22h21
  2. Protection contre les SQL Injections ?
    Par kedare dans le forum JDBC
    Réponses: 9
    Dernier message: 05/05/2010, 10h42
  3. protection contre les injections SQL
    Par Merling dans le forum Applications
    Réponses: 1
    Dernier message: 23/02/2010, 09h28
  4. [MySQL] Protection contre les injections
    Par hafcher dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/06/2008, 20h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo