begin process at 2012 05 27 05:21:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Divers

 > 

Sécurité des bases de données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sécurité des bases de données

samedi 18 février 2006 à 16:53:04 | Sécurité des bases de données

AlexN

Bonjour,

Je construit un site internet composé de deux parties :
- une partie frontale qui affiche les offres de produits aux clients
- une partie "office" qui permet au propriétaire de modifier ses offres.

Les deux parties sont totalement distinctes, mais fonctionnent autour de la même base.
En parcourant l'interface myphpadmin, j'ai trouvé la possibilité d'associer plusieurs utilisateurs à la base, mais avec des droits d'accès différents. Lors de la conception, j'ai inséré deux utilisateurs :
- anonyme représentant les internautes de la partie frontale avec uniquement le droit select sur les tables
- propriétaire représentant les internautes utilisant la partie "office" avec des droits en insert, select, update, delete sur les tables

L'idée était de disposer d'un  mécanisme de protection supplémentaire de la base, sachant que les pages de la partie frontale sont reliées à un petit script utilisant uniquement la connexion avec l'utilisateur anonyme, tandis que les pages "office" sont reliées à un script utilisant la connexion "privilégiée". Cela permettait, à mon avis, de placer une sécurité au niveau de la base elle-même, en plus des mécanismes qui peuvent être utilisés au niveau application (sessions, cryptage...). Les niveaux sont utiles, à mon sens, parce qu'ils permettent de figer, une fois pour toutes, le rôle de chaque internaute par rapport à la base de données. Tout internaute se connecte sous l'identité "anonyme" sans le savoir. Le propriétaire se connecte sous sa propre identité, à travers une entrée de session (login, mdp)

Cependant, quand j'ai voulu tester le site chez l'hebérgeur, je me suis trouvé face à une interface m'interdisant la création de deux utilisateurs différents. En ayant fait état à travers le forum de l'hébergeur, j'ai eu plusieurs réponses de la part de  l'hébergeur :
- "Bonjour, je ne comprend pas l'interet d'avoir 2 utilisateurs mysql pour un seul site ?????? C'est la premiere fois que je vois une gestion d'utilisateur comme ca. Normalement c'est le programme / site que tu développe qui gere les utilisateurs et non la base de donnée. La BD sert uniquement à stocker des informations"
- "Nous ne pouvons fournir 2 utilisateurs avec niveaux différents car les applications ne se font pas comme ça et l'avantage serait nul"..."Le fait d'avoir 2 utilisateurs ne protège en rien les données. Il faudrait que celui avec les droits n'existe pas DU TOUT au niveau du web pour que la sécurité soit totale. Ce n'est pas possible puisque le proprio doit pouvoir passer par le web pour modifier...donc sécurité inutile"

Finalement, la solution qu'il m'ont proposé est d'utiliser l'unique connexion dont dispose chaque compte (c'est à dire, et ils me l'ont bien confirmé eux même, que "Les connections à la base de données se feront toujours avec l'utilisateur ayant tous les droits sur la base.") et de construire une table supplémentaire dans la base pour stocker l'unique utilisateur privilégié. Donc, en plus du travail suppl pour sécuriser cette table, j'ai l'impression de perdre un niveau de sécurité dans l'application.

Ma question est la suivante :
Est-ce que je me trompe dans la conception de l'application en utilisant les utilisateurs et leurs droits disponibles directement au niveau de la base de donnée, ou est-ce que l'hébergeur fait des économies sur les comptes de ses hébergés au détriment de leur sécurité  (C'est direct, mais ça m'interpelle...)

Merci pour vos réponses...
Bonne journée..


dimanche 19 février 2006 à 22:25:47 | Re : Sécurité des bases de données

nhervagault

Administrateur CodeS-SourceS
Salut, Oui, tu permets en sécurité, mais la sécurité au niveau de la base peux etre decalé sur l'application. Car tu user guest, auras sa zone, et ton admin auras un cookie pour se propager de page en page, peux etre une connexion ssl pour l'admin, mais la je ne connais pas la mise a place de se systeme et si c'est possible en hebergement mutualise. La solution c'est un serveur dedie mais la c'est un autre prix ;-) bon courage.
lundi 20 février 2006 à 13:29:22 | Re : Sécurité des bases de données

Mindiell

Bonjour,

A mon avis, tu ne te trompes pas. Cependant, l'hebergeur n'a pas completement tort non plus, dans le sens ou la sécurité est suffisante en passant par le web uniquement.
En serveur dédié, ca reste une sécurité de plus qui ne coute pas grand chose et qui sert toujours...

Mindiell Software
lundi 20 février 2006 à 15:26:07 | Re : Sécurité des bases de données

AlexN

Bonjour Mindiell,

Quand je posais la question j'avais une certaine idée du type de dégats que peut subir une base de donnée ainsi exposée avec les pleins droits du propriétaire.
Il existe une forme d'attaque appelée injection sql qui permettrait de détourner une requête de son fonctionnement prévu. Ainsi, si j'ai bien compris, il est possible d'interroger une base, sans même parfois connaître sa structure. Il suffit pour cela qu'un champ de la base soit ouvert à travers un champ de formulaire HTML (un livre d'or, une fenetre de connexion...). Si la réception des informations dans ce champ n'est pas traitée, elle laisserait la porte ouverte à ce genre de dysfonctionnement.

Mon idée était la suivante : si malgré les protections quis sont placées au niveau applicatif, quelquechose fonctionne mal et qu'un utilisateur peut agir ainsi, s'il n'est que connecte à la base avec un droit select, ses actions se limiteront à des lecture d'infos, tandis que s'il est connecté avec les pleins droits... (update password=""..., delete *...)

Voila..
Peut être que je me trompe...

lundi 20 février 2006 à 15:29:09 | Re : Sécurité des bases de données

Mindiell

Ah, intéressant comme attaque, mais, comme tu le dis, en vérifiant un minimum tes champs tu évites cette attaque.
Comme je l'ai dit, c'est un plus (que je préfère moi aussi)...


Mindiell Software
lundi 20 février 2006 à 17:42:36 | Re : Sécurité des bases de données

AlexN

Merci pour ces précisions.
Bonne fin de journée.

NB. le bouton "Réponse acceptée" ne fonctionne plus chez moi...
lundi 20 février 2006 à 20:31:52 | Re : Sécurité des bases de données

nhervagault

Administrateur CodeS-SourceS
Salut, Dans tes validations de champ, il suffit d'interdire les mots suivant "delete", ";", "scripts" , "'"quote, .... il faut limiter un maximum les espaces (faire des trim sur les chaines) Un bon moyen de valider les champs c'est d'utiliser une regexp. En ado ou ado.net, il faut utiliser les parametres nommés des commandes. Cela permet de ne pas s'inquité des formats (doublage des quotes) probleme de date .... Allez bon courage.


Cette discussion est classée dans : base, données, utilisateurs, sécurité, partie


Répondre à ce message

Sujets en rapport avec ce message

sécurité d'une base de données sous mysql via mysql connector/c++ [ par ayadijj ] bonsoir à tous, j'ai créé une base de données sous mysql server 5.0 en utilisant l'outil d'administration toad for mysql 5.0,mais je n'arrive pas à sé remplir manuellement une base de données avec visual studio [ par alibaba1234 ] remplir manuellement une base de données avec visual studio BackUp/Sauvegarde [ par sarrenza ] Hello, je veux que vous m'aidiez à savoir quand le processus de sauvegarde se commence et se termine quand je configure une sauvegarde pour une base Besoin de base de données texte [ par safae890 ] bonjour dans le cadre d'un projet Datamining j'ai besoin d'une base de données sous format texte concernant le secteur de télécommunication s'il vous mise à jour [ par audreysorelle ] Je crée une base de données access les données mères de cette base de donnée sont obtenues après une importation de excel à access quand je fais l imp Alertes Base de données [ par vbto ] Bonjour; J'ai un problème avec mon agent sql comment recevoir des alertes s'il n'est pas activé en ms sql 2005 merci mettre a jour des donnees [ par Usernet007 ] je veux générer un fichier .sql a partir d'une base de données Sqlite car j'ai une application développé sur Android et la même en java donc je veux m mettre a jour des donnees [ par Usernet007 ] je veux générer un fichier .sql a partir d'une base de données Sqlite car j'ai une application développé sur Android et la même en java donc je veux m Exercices corrigées en base de données reparties [ par khaled001 ] Salut Je cherche des exercices corrigées en base de données reparties surtous concernant la fragmentation pliiize [^^happy17] Cordialement [^^happy1 demande d'aide à concevoir une base de données [ par supteche ] Bonjour,je suis un étudiant spécialité informatique,dans le cadre de notre pfa nous sommes amenés à faire un logiciel de gestion de la comptabilité gé


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,262 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales