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

C# Discussion :

Empecher l'acces a une BDD


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut Empecher l'acces a une BDD
    Bonjour,

    Je cherche un moyen d'empêcher la connexion à une base de données pour tous, sauf pour mon logiciel.

    L'accées via par exemple MySQL Querry browser ne doit pas être possible...



    Une solution consisterai, a mettre l'identifiant et le mot de passe de la base de donnée en dur dans le code de mon logiciel.... mais une simple décompilation de 30sec permet de retrouvé la chaine de connexion et donc foutre en l'aire la confidentialité



    Le logiciel devant être diffusé en interne, il est donc impossible d'y associé un fichier de config.


    Une solution ?
    merci

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Passer par un Active Directory pour que seul ton logiciel, exécuté depuis un compte technique déterminé (sur un serveur donné), soit membre d'un groupe AD qui donne l'accès à la base SQL (ça tu le configures au niveau de ton Windows Server).

    Ainsi ton application ne contient pas le mot de passe, puisqu'il est stocké au niveau de ton serveur applicatif d'exécution.
    Logiquement c'est plus sécurisé.

    Sinon tu peux toujours crypter en RSA les sections ConnectionString de ton application...

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Tu peux aussi :
    - "obfusquer" ton code
    - wrapper ta bdd, ça consiste à rendre illisible tes procédures stockées, fonctions, etc en quelque sorte... Je crois que c'est possible, mais je ne suis pas sûr sûr. J'avais lu quelque chose qui disait un truc dans le genre, après je ne connais pas les impacts d'une telle manip...

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Pas besoin d'obfusquer le code de toute l'application si c'est juste pour un mot de passe qui est dans la config à mon avis.

    En wrappant la BDD (je ne connais pas le process), est-ce que tu masque également les données qu'elle contient ? ou ça concerne uniquement la partie "applicative" de la base ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Passer par un Active Directory pour que seul ton logiciel, exécuté depuis un compte technique déterminé (sur un serveur donné), soit membre d'un groupe AD qui donne l'accès à la base SQL
    Merci tout d'abord,

    Je vais me pencher sur ces "Active Directory"

    Comment est-ce que l'accès au serveur applicatif serait alors géré ?
    selon le compte windows du PC ? se qui ne m'arrangerai pas




    obfusquer ?

    hmmmm cela va rendre mon code illisible, mais la chaine de connexion se baladera tout de même quelque part ? avec de la détermination il est possible de le récupérer j'imagine . ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Citation Envoyé par Er3van Voir le message
    est-ce que tu masque également les données qu'elle contient ?
    Je n'en ai pas parlé, mais "oui" , j'ai pensai crypter les salaires
    (uniquement 1 champs en BDD)

  7. #7
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Citation Envoyé par prokira Voir le message
    Je vais me pencher sur ces "Active Directory"
    Qu'on soit bien d'accord, c'est une solution pour entreprises.
    Si ce n'est pas dans le cadre d'une entreprise que tu fais ton projet tu peux oublier cette solution car ça serait une infrastructure lourde à mettre en place.

    Citation Envoyé par prokira Voir le message
    Comment est-ce que l'accès au serveur applicatif serait alors géré ?
    selon le compte windows du PC ? se qui ne m'arrangerai pas
    Si ton application est une application web par exemple, tu peux gérer le compte dans IIS, du coup c'est dédié à ton application.

    Peux-tu détailler d'avantages le contexte de ton projet ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    C'est belle et bien en entreprise. L'application sera diffusé à une petite dizaine de personne ayant des droite différent d'accées dans mon application
    (ceci est géré selon leur compte, compte contenu en base de donnée).

    Je ne peut me basé sur l'identification windows,ainsi je fait mes propres comptes d'utilisateur et restreint totalement l'accès a la base de donnée.

    La base de donnée va contenir les information relative au collaborateur (adresse etc...) , et ces information ne doivent être accessible par personne, pas même l'administrateur réseau après mon départ
    (je suis prestataire)



    En quoi consiste l'active directory, elle va identifié le compte windows ? ou l'application ? comment ?

  9. #9
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    En gros, un Active Directory c'est un LDAP Microsoft.
    Cela te permet de gérer l'authentification intégrée Windows (si tu as une solution unifiée Microsoft c'est très pratique).

    L'idée étant que ce ne soit pas ton application ni ta base de données qui se charge de savoir si l'utilisateur a le droit d'accéder à tel ou tel brique (excepté pour les décompositions métiers), mais ton AD.

    Voici le fonctionnement sommaire, avec authentification intégrée :

    Logiquement, tes utilisateurs sont déjà déclarés dans l'AD.
    Il faut créer un groupe AD <<monApplicationGroup>> et les y ajouter.

    Tu précise dans le serveur qui héberge ton application que seuls les utilisateurs du groupe <<monApplicationGroup>> peuvent y accéder.

    Ensuite, tu précises que seul le compte technique de ton application, lui aussi déclaré dans l'AD, peut accéder à ta base de données, au niveau de ton serveur Windows qui héberge ta base.

    Du coup, c'est l'AD qui s'occupe d'authentifier les utilisateurs.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Je te remercie par ailleurs de toute l'aide, cela ma grandement fait avancé sur ma réflexion

    Citation Envoyé par Er3van Voir le message
    Logiquement, tes utilisateurs sont déjà déclarés dans l'AD.
    que seuls les utilisateurs du groupe <<monApplicationGroup>> peuvent y accéder.
    qu'est ce qu'un utilisateur à tes yeux ? Un compte windows ? un compte crée sur le serveur via Active Directory ? celon l'IP ?

  11. #11
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Pour moi un utilisateur c'est un compte lié à un domaine et rattaché à l'Active Directory.

    Si ton domaine est un domaine Windows, alors c'est un user Windows rattaché à l'Active Directory. Mais c'est possible d'avoir des utilisateurs Windows et GNU/Unix (par exemple) sur un même Active Directory.

    Si on veut rentrer un peu dans le détail, tu peux aussi entendre parler d'ADAM, qui est une surcouche applicative sur les AD, qui permettent notamment d'agréger deux AD différents et/ou d'appliquer des règles.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Hé bien merci beaucoup !

    Je vais marquer le sujet comme résolue et entamer des recherche et des testes a se sujet ( en gardant dans un coin de ma tete que tu est la au cas ou ^^ )

    En tout cas merci ta été super sympa et rapide
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Accès distant à une BDD
    Par thierrybatlle dans le forum WinDev
    Réponses: 1
    Dernier message: 04/06/2009, 16h24
  2. Accès OffLine à une BDD
    Par Neji44 dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/12/2006, 22h45
  3. Réponses: 15
    Dernier message: 15/12/2006, 18h18
  4. [C#/MySQL] Pourquoi ai-je une erreur d'accès à ma BDD ?
    Par flykev dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/07/2006, 17h33
  5. [JAVA]accès à un champ OLE d'une bdd ACCESS 2002
    Par chris35 dans le forum Access
    Réponses: 1
    Dernier message: 05/01/2006, 22h05

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