Lorsque vous développez des applications Windows: P>
Comment sécuriser le nom d'utilisateur et le mot de passe de la chaîne de connexion? P> LI>
Organisations telles que les banques, donneraient-elles le nom d'utilisateur et le mot de passe de leur DB aux développeurs d'applications? Si ce n'est généralement pas si ces développeurs d'applications écrivent les connexions DB? P> LI>
Quelle est la norme industrielle pour sécuriser l'utilisateur et le mot de passe de la chaîne de connexion? p> li> ol>
merci p>
4 Réponses :
de msdn:
ASP.NET 2.0 a introduit une nouvelle fonctionnalité appelée configuration protégée, qui vous permet de chiffrer des informations sensibles dans un fichier de configuration. Bien que principalement conçu pour ASP.NET, la configuration protégée peut également être utilisée pour chiffrer les sections de fichiers de configuration dans les applications Windows. Pour une description détaillée des capacités de configuration protégées, voir Cryptage des informations de configuration à l'aide de la configuration protégée . P>
Le fragment de fichier de configuration suivant montre la section Connexionstrings après avoir été crypté. Le fichier ConfigProtectionProvider spécifie le fournisseur de configuration protégé utilisé pour chiffrer et déchiffrer les chaînes de connexion. La section CryptedData contient le texte de chiffrement. P>
<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider"> <EncryptedData> <CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAH2... </CipherValue> </CipherData> </EncryptedData> </connectionStrings>
Link Seules les réponses sont fronça les sourcils ici. Essayez d'ajouter un peu de détail
Non, mais j'imagine que vous pouvez construire une réponse qui résume l'article, puis inclure le lien. Cela ajouterait de la valeur. Liens n'ajouter pas la valeur.
Gaspillage de temps sur des commentaires ... Mieux vaut copier des informations de MSDN en réponse.
Vous devez utiliser des paramètres. p>
exemple SQLCOMMAND Command = Nouveau SQLCOMMAND ("SELECT * à partir de la connexion où USERNAME = @Name", Conn); command.parameters.add (nouveau sqlparameter ("@ nom", uname.txt)); . p>
Qui ne consiste pas à sécuriser les données de chaîne de connexion
Je pense que l'OP cherche à crypter l'utilisateur et à réussir pour connecter i> à la base de données, de ne pas sélectionner un utilisateur et de passer de i> une base de données.
vous pouvez chiffre de chiffrement dans le app.config de la même manière que web.config. MS appelle la configuration protégée.
Comme ceci
- Comment sécuriser le nom d'utilisateur et le mot de passe de la chaîne de connexion? LI> ol> blockQuote>
Utilisez l'authentification Windows pour éliminer le besoin d'un mot de passe dans la chaîne de connexion ou utilisez une combinaison d'un ou de plusieurs de: p>
cryptage, par exemple Utilisation de Configuration protégée . P> li>
restreindre l'accès au fichier de configuration, par exemple en utilisant une ACL. P> li> ul>
Notez que les techniques ci-dessus fonctionnent bien pour les applications de serveur (E.G. ASP.NET), où l'accès au serveur peut être limité aux administrateurs autorisés. Cela ne fonctionne pas bien pour les applications côté client qui accèdent directement à une base de données. P>
Notez également que le cryptage seul n'est pas suffisant: il remplace simplement le problème du contrôle de l'accès à un fichier de configuration en clairexuant par le problème du contrôle de l'accès aux touches de cryptage. Lors de l'utilisation de la configuration protégée, vous devez décider comment restreindre l'accès aux touches de cryptage utilisés pour chiffrer votre fichier de configuration. P>
2. Des organisations telles que les banques, donneraient-elles le nom d'utilisateur et le mot de passe de leur DB aux développeurs d'applications? Si ce n'est pas typiquement la manière dont ces développeurs d'applications écrivent les connexions de DB? P> blockQuote>
dans les développeurs généraux ne reçoivera que des informations d'identification pour accéder aux bases de données dans un environnement de développement / test. L'accès aux bases de données de production sera restreint. P>
3. Quelle est la norme industrielle pour sécuriser l'utilisateur et le mot de passe de la chaîne de connexion? P> blockQuote>
Il n'y a pas de "standard de l'industrie", mais voir réponse à la question 1. p>
Dans la deuxième réponse, vous avez mentionné sur un environnement de test, je pense que vous voulez dire par ceci était un ensemble de données factices parallèles à l'original?
@sniff_bits - Quelles données dans une base de données DEV / TEST dépendront de l'organisation. Si les données de production sont confidentielles, elles peuvent être des données factices ou peut-être une version anonymisée des données de production. Si ce n'est pas confidentiel, il peut s'agir d'un instantané de données de production.
@Je: Je veux déployer mon application sur Utilisateurs finaux b>. Comment sécuriser le nom d'utilisateur / mot de passe en utilisant pour vous connecter à un serveur SQL centralisé? Comme vous l'avez écrit ", cela ne fonctionne pas bien pour les applications côté client qui accèdent directement à une base de données."
@Yukisakura - "Cela ne fonctionne pas bien" car l'utilisateur sera en mesure d'avoir accès à la base de données s'il est suffisamment déterminé. Pour atténuer cela, vous pouvez restreindre ce que la connexion à la base de données est autorisée (par exemple, exécuter uniquement des procédures stockées nécessaires à l'application). Mais il ne peut jamais être aussi sécurisé qu'une architecture avec un service Web entre le client et la base de données, où le client ne peut pas accéder directement à la base de données.