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

JDBC Java Discussion :

Sécuriser connexion base de donnée


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Sécuriser connexion base de donnée
    Bonjour,

    Je débute sur les bases de données en Java et je me pose une question sur la sécurité de mon code.
    Je travaille actuellement sur une application J2SE (et non J2EE) qui utilise une base de donnée MySQL. La persistence est gérée avec JPA, j'ai donc un fichier persistence.xml

    Dans ce fichier, ce trouve l'URL de la BDD, le nom d'utilisateur et le mot de passe pour se connecter. Toutes ces informations sont stockées en clair dans le fichier xml et je me demande si cela n'est pas risqué ?

    Je ne connaît pas les bonnes pratiques en la matière et j'aimerai savoir si ces informations doivent être protégé ? Si oui comment ?

  2. #2
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    J'ai la même problematique. Comment sécurisé les accès à la base de donnée sachant que :

    Dans le code : en java on peux facilement récupérer le code à partir des fichiers compilés et donc obtenir les infos

    Un fichier externe crypté ? Il est facile d'obtenir les informations de cryptage dans le code et donc de décrypter le fichier.

    Existe t-il une solution ? Si non, quel est la méthode la plus sécurisée ?
    J'aime pas les épinards... Mais alors pas du tout

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Salut,

    A ma connaissance, il n'existe pas d'autre solution. Et de toute façon, il faut bien que ces données soient inscrites qq part.

    En général, on externalise les données sensibles dans un même répertoire, et l'accès à ce répertoire est ensuite blindé de sécurité.

    A ne pas faire : mettre ces infos dans le code source, c'est facilement décompilable.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut sécuriser le serveur (sur lequel vous avez la main), et non pas le client !

    Bref donner à chaque client un identifiant pour la base de données, et coté serveur limité les droits de cet utilisateur.

    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Il faut sécuriser le serveur (sur lequel vous avez la main), et non pas le client !
    Pourquoi cette réflexion ?? Personne ne parlait de sécuriser le client. La question est juste de savoir où stocker le login/mot de passe attribué à chaque client.

  6. #6
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Ma problematique était de n'avoir aucun client (connexion à la base automatique).

    Mon serveur est très bien sécurisé et du coup je pense avoir trouver un bon compromis en utilisant l'ODBC plutôt qu'une connexion direct. Du coup c'est le gestionnaire ODBC du système qui se charge de conserver les accès à la base de donnée.

    Reste plus qu'a savoir si je peux restreindre l'accès ODBC à une seule application :/
    J'aime pas les épinards... Mais alors pas du tout

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Je n'ai peut-être pas bien compris ce qui vous voulez faire !
    De qui voulez-vous protéger le login/mdp ???


    a++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    La demande n'est pas de moi, je peux juste dire ce que j'ai compris :

    Comment protéger au mieux les identifiants de connexion à la bdd dans les pages webs ?

    La solution que j'utilise : extraire les identifiants dans un fichier XML, placer ce fichier dans un répertoire sécurisé du serveur non accessible par le web.

    Mais le problème semble résolu autrement par Higestromm : créer une connexion ODBC.

    Ceci dit, une connexion ODBC n'est qu'une autre méthode de connexion à une base mais le problème reste le même : il existera toujours un fichier de configuration quelque part où sont placés les données sensibles (odbc.ini pour ODBC). C'est ce fichier qui doit être sécurisé.

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par TekP@f Voir le message
    Comment protéger au mieux les identifiants de connexion à la bdd dans les pages webs ?
    Justement non : on parle ici d'application "Java SE", donc des applications installé sur le poste client !


    a++

  10. #10
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Oui je n'ai pas bien expliquer mon problème

    Il s'agit bien d'une application Java SE (qui s'execute comme une application normale).
    Cette application utilise une base de donnée distante pour fonctionner.

    J'ai une contrainte : l'utilisateur ne veux pas saisir de mot de passe ni de login.

    Du coup le logiciel doit se connecté tout seul à la base de donnée. Celà implique donc une faille de sécuritée car je doit bien mettre mes accès (login, pass, serveur) quelque part.

    - Un fichier séparer crypté ne me parait pas être une bonne solution car l'algo de décryptage se trouve dans mon code java qui peut etre décompilé.
    - Pour la même raison, les accès ne doivent pas être inscrits "en dur" dans le code
    - Passer par de l'ODBC est ce qui me paraît pour le moment le plus sécurisé mais je n'ai pas encore approfondit le sujet.

    Voila je ne sait pas si c'est plus clair
    J'aime pas les épinards... Mais alors pas du tout

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Et tu veux cacher les paramètres de connexion à ton client ?

    a++

  12. #12
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Je veux surtout le cacher à un utilisateur mal intentionné.

    Et comme dans une entreprise on est pas à l'abrit d'avoir un employé "bidouilleur" :/
    J'aime pas les épinards... Mais alors pas du tout

  13. #13
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Higestromm Voir le message
    Je veux surtout le cacher à un utilisateur mal intentionné.
    Et l'utilisateur n'as pas accès à la configuration ODBC de son poste ?

    Citation Envoyé par Higestromm Voir le message
    Et comme dans une entreprise on est pas à l'abrit d'avoir un employé "bidouilleur" :/
    Avec un login/passwd par utilisateur on évites ces bidouilles

    a++

  14. #14
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Et l'utilisateur n'as pas accès à la configuration ODBC de son poste ?
    Je doit voir si cet acces ne peut pas etre restreint à l'administrateur du poste.

    Citation Envoyé par adiGuba Voir le message
    Avec un login/passwd par utilisateur on évites ces bidouilles
    a++
    Oui mais je n'ai pas le choix.
    J'aime pas les épinards... Mais alors pas du tout

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Justement non : on parle ici d'application "Java SE", donc des applications installé sur le poste client !
    Oups ... Je comprends mieux là. Désolé, déformation professionnelle

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/01/2006, 20h50
  2. Réponses: 5
    Dernier message: 07/04/2005, 14h12
  3. [Tomcat][Oracle] connexion base de donnes debutant....
    Par yogz dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 16/07/2004, 13h32
  4. [XMLRAD] Connexion Base de données Informix
    Par clisson dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/01/2003, 13h46
  5. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22

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