Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1433 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Sécurité base de données avec PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Sécurité base de données avec PHP

n°1287763
Djebel1
Nul professionnel
Posté le 19-01-2006 à 17:48:01  profilanswer
 

Bonjour,
 
Petite question de sécurité lorsqu'un utilisateur doit pouvoir faire des insertions, suppressions dans des tables de la base de données (cas assez classique) :
 
On considère que l'utilisateur est déjà connecté au site avec tous les tests de sécurité préalables, et qu'on n'utilise pas le SSL.
 
Cas 1 : faut-il utiliser un compte préalablement crée par l'admin permettant les opérations sur la base de données ? le login et mot de passe de ce compte sont alors forcément écrits en clair sur le script PHP pour exécuter le mysql_connect (ou alors si y a un autre moyen je le connais pas).
 
Cas 2 : faut-il créer le compte de l'utilisateur dans la base de données, afin de l'utiliser par la suite ? Concrètement, le mysql_connect utilisera alors le login et le mot de passe de l'utilisateur pour se connecter et effectuer les opérations sur la base de données. Les opérations sont alors effectuées par le compte de l'utilisateur lui-même, et non par un compte crée spécialement par l'admin.  
Il n'y a pas de mot de passe stocké sur le script PHP, mais cela implique de stocker en clair le mot de passe de chaque utilisateur dans une variable de session durant sa connection (ou alors si y a un autre moyen je le connais pas).
 
Cas 3 : vous faites complètement différemment ?
 
Merci pour vos lumières  :jap:


Message édité par Djebel1 le 19-01-2006 à 18:34:30
mood
Publicité
Posté le 19-01-2006 à 17:48:01  profilanswer
 

n°1287773
omega2
Posté le 19-01-2006 à 18:00:20  profilanswer
 

Personellement, je trouve la solution numéro 2 complétement illusoire si le site est en inscription libre : tu auras vite fait d'avoir des disaines de comptes permettant l'accés à la base de donnée qui ne serviront peut être qu'une fois en un an.
Il ne faut pas oublier que chaque compte ouvert au niveau base de donnée est une porte entreouverte vers les données qu'elle contient.
En plus si t'as besoin d'accéder à une nouvelle colone d'une table, tu penses que l'administrateur de la base de donnée va être content de devoir modifier les droits d'accés de plusieurs milliers ou disaines de milliers de comptes utilisateurs?
En plus, le fait de donner son pseudo et son mot de passe mysql à un utilisateur externe est un gros probléme : s'il lui vient l'idée de tenter une conection directe à la base et que ca réussit alors il poura modifier la base en sautant toutes les protections mises en place au niveau de php.
 
Au boulot, on a choisit le cas 1 en méttant les informations de conection dans un fichier dont le contenu est innaccéssible depuis l'extérieur : Si tu mets ton pseudo et mot de passe entre "<?php" et "?>" dans un fichier ".php" celui qui essaye de le lire depuis l'extérieur recevra une page vide. Pour mon site personelle, j'avais fait exactement pareil.

n°1287785
Djebel1
Nul professionnel
Posté le 19-01-2006 à 18:19:23  profilanswer
 

oui tout cela semble bien logique, merci de ta réponse.
 
Donc concrètement, tu crée un fichier php qui contient juste le login et mot de passe, et que tu inclue dans les script nécessaires ?
 
Ce qui m'inquiète avec cette méthode, c'est que si tu te fais pirater le serveur et pas la base de données, la base de données est complètement compromise puisque tu auras surement stocké dans un script les logins et mot de passe d'un compte qui a tous les droits sur la base de données.
 
Enfin j'imagine que c'est la meilleure solution


Message édité par Djebel1 le 19-01-2006 à 18:19:38
n°1287793
omega2
Posté le 19-01-2006 à 18:27:30  profilanswer
 

Il ne faut pas croire, l'art d'être administrateur de base de donnée consiste justement à ne donner à un utilisateur que les droits dont il a besoin. Pour un site web, en tant normal, c'est juste lecture ou lecture/écriture sur certaines tables et rien de plus. Et s'il y a besoin de modifier ponctuellement la structure soit on augmente ses capacités pendant quelques heures, soit on le fait à l'aide d'un autre utilisateur.
Evidement, pour des hébergeurs comme free, des limitations aussi fines ne sont pas jouable et ils donnent directement "tous les droits" sur une et une seule base pour un utilisateur donnée.

n°1287799
Djebel1
Nul professionnel
Posté le 19-01-2006 à 18:34:14  profilanswer
 

merci beaucoup pour tes conseils


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Sécurité base de données avec PHP

 

Sujets relatifs
Changement hebergeur et base Mysql[resolu]methode post vers une autre frame
Aide page PHP[résolu][CSS] Probléme avec... FF !
Comment spliter un champ importé de MySQL dans un tableau PHPimages aliasées avec la librairie GD2 [résolu]
[RESOLU]erreur a l'affichage de mes pages?????Proteger un programme PHP
[Résolu][JSP/STRUTS]pré-selection liste déroulantealimenter Excel avec des données provenant de Access
Plus de sujets relatifs à : [résolu] Sécurité base de données avec PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR