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

PHP & Base de données Discussion :

Protection contre injection dans la base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut Protection contre injection dans la base de données
    Bonjour,
    J'utilise angular avec php/mariadb/mysql

    ma question est simple , est-ce que la fonction prepare et bindParam suffit en php afin d'éviter les désagréments d'injection et autre bidulerie de hackeur ou bêtise utilisateur ?

    un fichier php de ce genre suffit ou il faut nettoyer $donnees->toto reçu par le front-end?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $Reception = file_get_contents("php://input");
    $donnees = json_decode($Reception);
    $sql = "update blablablabla";   
     
    $database = new Database();
    $connexion = $database->getConnection();
    $query = $connexion->prepare($sql);
    $query->bindParam(1, $donnees->toto);
    $query->execute();
    merci par avance de vos réponses ...

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Il faudrait un exemple un peu plus réaliste. Est-ce que tous les arguments de la requête seront paramétrés ?
    A part ça, ça devrait être "safe", mais le code peut planter quand même, par exemple si certains éléments ne sont pas présent dans le JSON.
    Ceci dit, il me semble qu'il doit y avoir un minimum de validation, à part les zones texte libre, car si on laisse l'utilisateur (ou un robot) rentrer n'importe quoi on se retrouve avec une DB pleine de données inutiles.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Il faudrait un exemple un peu plus réaliste. Est-ce que tous les arguments de la requête seront paramétrés ?
    A part ça, ça devrait être "safe", mais le code peut planter quand même, par exemple si certains éléments ne sont pas présent dans le JSON.
    Ceci dit, il me semble qu'il doit y avoir un minimum de validation, à part les zones texte libre, car si on laisse l'utilisateur (ou un robot) rentrer n'importe quoi on se retrouve avec une DB pleine de données inutiles.
    merci de votre réponse.

    le robot aura un peu de mal car il faudra être loger ( avec Keycloak )
    sinon oui tous les arguments de la requête sont paramétrés avec bindParam sauf 1 qui est interne puisque c'est un id utilisateur qui vient de Keycloak via la cession donc pas injectable

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2015, 16h15
  2. Injection fichier XML dans la base de données
    Par ache93 dans le forum JDBC
    Réponses: 26
    Dernier message: 26/07/2011, 17h33
  3. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  4. [SYBASE]Libérer espace libre dans une base de données ?
    Par le_parrain dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 09h36
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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