Comment se connecter à une base de données qui nécessite un mot de passe sans exposer le mot de passe?
Je suis entrain de créer une application et j'ai besoin de vous connecter à une base de données. La base de données nécessite un nom d'utilisateur/mot de passe afin que l'application peut effectuer des opérations comme la sélectionner et insérer.
Dans l'application, j'ai besoin de vous connecter à la base de données en utilisant le login et le mot de passe, de sorte que l'application est libre de faire quelques tâches sur la base de données. Ma question est: comment dois-je entreposer et utiliser un mot de passe pour se connecter à la base de données sans exposer le mot de passe?
Je ne peux pas tout simplement utiliser une table de hachage ou de chiffrement pour stocker le mot de passe de la base de données doit reconnaître le mot de passe (je pense que la plupart ou toutes les bases de données doivent recevoir le mot de passe en texte brut).
.
.
Remarque: La connexion est faite par l'application. Aucune contribution humaine à faire la connexion.
(Edit)Plus d'informations sur l'application: il s'agit d'une application web à l'aide de servlets/jsp. La base de données est sur le même serveur de l'application. L'utilisateur de l'application est un défaut de l'utilisateur sans admin pouvoirs, mais on peut insérer/supprimer des lignes et de faire la plupart des choses qui impliquent des requêtes et la modification de données dans les tables.
- Pouvez vous invite à un opérateur pour un mot de passe au démarrage de l'application-up?
- La connexion est faite par l'application. Aucune contribution humaine.
- Je pense que vous avez besoin pour décrire un peu plus sur votre environnement de l'application. Est-ce un serveur d'application, application client, est à la base de données sur le même serveur, serveur différent? Avez-vous créé un utilisateur avec des autorisations que pour les insérer? (Vous n'êtes pas d'essayer de me connecter en tant que root êtes-vous?) Généralement, vous avez à "donner des informations à l'écart" et de restreindre l'accès à une plage d'adresses ip.
Vous devez vous connecter pour publier un commentaire.
De la manière habituelle, c'est fait, c'est d'externaliser le nom d'utilisateur/mot de passe à un propriété/fichier de config qui est lu au moment de l'exécution (si vous n'utilisez natif JDBC/JNDI/CDI/J2EE source de données/etc).
Le fichier est protégé par l'O/S de sécurité par les administrateurs système.
L'O/S a de meilleurs outils de protection que le code de l'application.
stringScrambler
en Java Bibliothèque d'assistance. C'est très simple, mais vraiment efficace pour empêcher les gens de piquage de votre mot de passe...Vous devez utiliser un fichier de configuration pour cette. utiliser le printemps avec JDBC pour rendre votre vie plus facile!
http://www.youtube.com/watch?v=f-k823MZ02Q
La caisse de la ci-dessus génial tutoriel sur le framework Spring et à l'aide de JDBC. Regarder l'ensemble de son JDBC et le printemps des tutoriels.
BTW, il traite de la façon de stocker les mots de passe dans des fichiers de configuration et les fils des haricots etc.. Espérons que cette aide.
Vous pouvez utiliser jasypt pour le chiffrement.Et de stocker le nom d'utilisateur et le mot de passe de base de données.fichier de propriétés.
Si c'est une application web, de le déployer sur un serveur d'application Java EE et se connecter en utilisant une ressource JNDI. Seul l'administrateur de configurer les données JNDI les besoins en ressources pour connaître les informations d'identification nécessaires pour se connecter. Les utilisateurs et les développeurs n'ont même pas besoin de les connaître; la recherche JNDI name.
Il n'est pas possible d'éliminer complètement le besoin de quelqu'un à côté de la propriétaire de base de données pour connaître le nom d'utilisateur et le mot de passe, mais il est possible de restreindre cette connaissance pour le serveur d'application propriétaire.
Vous sont également bien avisé de créer des informations d'identification pour cette application et de lui ACCORDER le minimum de l'accès et des autorisations nécessaires pour accomplir ses tâches. Il devrait y avoir aucune connaissance du système de tableaux ou d'autres ressources à l'extérieur de la province de l'application. SI l'option SUPPRIMER l'autorisation n'est pas nécessaire, ne pas l'accorder. Si l'accès doit être en lecture seule, c'est ce que vous devez ACCORDER à ces informations d'identification.