Bonjour,
Je développe actuellement une application cartographique à laquelle plusieurs clients peuvent se connecter. En gros, une application web tout ce qui a de plus classique.
Evidemment les données d'un ne sont pas les mêmes que les données d'un autre.
Deux solutions se présentent :
- Soit je passe par une API générale qui lit toutes les données d'une seule et même base de données, et les données sont récupérées côté frontend via un filter.
Problème potentiel : Une maladresse sur la base de données générale et tous les clients sont impactés (typiquement un oubli dans la clause where d'une req update ou d'une req delete) => le risque est proche de 100% (même en faisant attention, on n'est jamais à l'abri de ce genre de connerie).
- Soit je décide de mettre les données du client sur des bases de données séparées. Seul problème : comment dire à mon application que pour Mr Dupont, tu te connectes à la bdd 1 et pour Mme Durand à la base 2 ?
Supposant que lors d'une connexion à l'application via une API, on récupère des données tq le nom d'utilisateur, les autorisations, et le nom de la base de données.
Si je veux récupérer les données, je dois passer par une req fetch ou axios, avec une url du genre "monurl.org/nomdemabasededonnees" ce qui peut poser problème au niveau de la sécurité car cela donne trop d'informations à un utilisateur un peu malin. Comment faire pour une connexion dynamique à une base de données ? C'est ici plus un problème de dev frontend que de sécurité.
Quelle est la meilleure solution ?
Merci pour vos retours et vos éclairages
Sylvain
Partager