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

Conception Web Discussion :

Quelle meilleure option ?


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut Quelle meilleure option ?
    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

  2. #2
    Membre chevronné
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 302
    Billets dans le blog
    3
    Par défaut
    Bonsoir,

    Première solution.

    La deuxième solution est irréaliste.

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    Pourquoi irréaliste ?

  4. #4
    Membre chevronné
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 302
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par sylvain257 Voir le message
    Pourquoi irréaliste ?
    D'après ce que j'ai cru comprendre, tu souhaites faire une BDD pour chaque utilisateur ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    D'après ce que j'ai cru comprendre, tu souhaites faire une BDD pour chaque utilisateur ?
    Il y a deux solutions : soit chaque client a sa base de données et la connexion à la base de données est gérée dynamiquement, soit les données de chaque client sont stockées dans la même base de données, et les données sont filtrées côté front.

    Première solution : la question se pose sur le code côté front. J'ai une API d'authentification et à chaque connexion (url du genre https://monapi.com/login), cela redescend les données de l'utilisateur en question, donc potentiellement le nom de la base de données à connecter. La question est ici : comment gérer dynamiquement la connexion aux bases de données, le nom de la base de données étant une donnée issue de l'appel à l'API.

    Deuxième solution : si problème sur la base de données, tous les clients sont impactés

  6. #6
    Membre chevronné
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 302
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par sylvain257 Voir le message
    Il y a deux solutions : soit chaque client a sa base de données et la connexion à la base de données est gérée dynamiquement, soit les données de chaque client sont stockées dans la même base de données, et les données sont filtrées côté front.

    Une base de données par client c'est pas abusé ?


    Imagine tu as un million de clients

  7. #7
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 441
    Par défaut
    Citation Envoyé par sylvain257 Voir le message
    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é
    Je ne comprends pas pourquoi les informations de connexion à la bdd du client devraient redescendre coté client.
    Lors d'une authentification, les informations de connexion pourraient être enregistrées dans la session utilisateur coté serveur et ne seraient jamais visibles coté client.

  8. #8
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    @ABD-Z : pour les ORM, on arrive à la limite de mes compétences, mais je vais regarder un peu ce qu'il en ressort. J'ai l'habitude d'automatiser les processes avec FME ou des scripts SH ce qui limite quand même pas mal les erreurs.

    @Pytet : Quand un utilisateur s'authentifie, il y a un appel à l'API (selon une url https://monapi.com/login). Si cet appel est en succès, je peux redescendre n'importe quoi comme donnée notamment le nom d'une base de données client. Côté client, les données qui redescendent est la réponse de l'API. Ici il n'y a pas de variables de session, mais des cookies, des variables passées en localstorage ou en sessionstorage....

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/02/2024, 18h41
  2. Réponses: 1
    Dernier message: 31/08/2012, 09h27
  3. Réponses: 9
    Dernier message: 27/03/2006, 19h05
  4. [ADONet][VBNET] 1.1|2.0 :Quelles meilleures fonctionnalités?
    Par chris1977 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 03/02/2006, 12h15

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