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 :

Sécurité des données en BDD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut Sécurité des données en BDD
    Pour des besoins d'une application, je souhaite l'ajout, la modification et la suppression des éléments d'une entité qu'en passant par des scripts. Un utilisateur qui passe directement en BDD par exemple PhpMyAdmin, que les données lui soient cryptés.
    Je recherche la facon de crypter les données dans la BDD à l'utilisateur, que seuls les scripts PHP puissent les décrypter.

    Merci d'avance...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Merci déjà pour la réponse. Pour être plus explicite, je développe une application gérant les experts. Ajouter, modifier et supprimer un expert donné. Pour l'user ayant ces droits en BD, il pourra afficher les experts, et modifier la valeur du champ "actif" pour l'expert X étant donné que le champ "nom" de cet expert est bien lisible X. Je souhaite que X soit crypté de manière qu'un user ayant les droits appropriés ne que voit que du feu. De cette façon, il ne pourra pas faire quoi que ce soit sur X, car ne sachant pas que c'est lui. Rien qu'en passant par un script qu'on peut identifier X.

    Merci d'avance...

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Un utilisateur qui passe directement en BDD par exemple PhpMyAdmin, que les données lui soient cryptés.
    Pour accéder directement à MySQL, il faut connaître le nom et le mot de passe d'un utilisateur MySQL.Et chez MySQL, un utilisateur se connectant de la machine X est différent du même utilisateur se connectant de la machine Y.
    Pour ensuite voir le contenu d'une base de données, il faut en plus que l'utilisateur aie le privilège SELECT sur la base.

    La première sécurité avec une application PHP & MySQL, c'est de créer un utilisateur MySQL spécifique à cette application et qui aura juste les droits nécessaires sur la base de données utilisée par l'application.
    Si vous avez un serveur applicatif + un serveur de base de données, l'utilisateur MySQL pour l'application ne pourra se connecter que depuis le serveur applicatif.

    Exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGES ON [nom de la BDD].* TO 'user_appli'@'ip_du_serveur_applicatif' IDENTIFIED BY 'un_mot_de_passe_costaud'

    Dans un fichier de paramètre de l'application, qui ne sera bien entendu pas accessible depuis le web, vous aurez la définition du user_appli et son mot de passe.
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $USER_BDD = 'user_appli';
    $MDP_USER_BDD = 'son_mot_de_passe_costaud';

    Bien entendu, malgré cette sécurité élémentaire, l'administrateur du serveur MySQL, qui connaît le mot de passe du super user de MySQL (root par défaut mais ça peut se changer pour ajouter une sécurité anti-piratage) accède à toutes les BDD du serveur et peut voir toutes les données. Si c'est ça que vous voulez empêcher, alors il faut crypter effectivement les données en BDD, ce qui ralenti quand même le processus de traitement des données, peut grandement les alourdir en volume, peut poser des problème d'indexation, de recherche...

    Pour l'user ayant ces droits en BD, il pourra afficher les experts, et modifier la valeur du champ "actif" pour l'expert X étant donné que le champ "nom" de cet expert est bien lisible X
    Si l'administrateur du serveur de données est malveillant, il pourra aussi faire un DROP DATABASE ou bidouiller les données dans tous les sens, cryptées ou non ! Et si en plus c'est lui qui a la maîtrise des sauvegardes, difficile de contrer le terroriste numérique !
    Soit vous avez confiance en votre administrateur, soit vous en changez, soit vous répartissez la sécurité entre administration de données, administration de serveur et administration des sauvegardes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/09/2007, 12h05
  2. [Sécurité] Sécurité des données dans $_SESSION
    Par dinozor29 dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2007, 23h19
  3. Sécurité des données
    Par DevloNewb' dans le forum Langage
    Réponses: 6
    Dernier message: 03/03/2007, 09h28
  4. [Conception] Sécurité des données d'une base
    Par viny dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 26/12/2006, 23h10
  5. [MySQL] Problème à l'insertion des données en BDD
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/11/2006, 14h31

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