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..