gpt4 book ai didi

c# - 保护数据库连接字符串

转载 作者:搜寻专家 更新时间:2023-10-30 23:14:01 24 4
gpt4 key购买 nike

我正在寻找一些与存储和保护数据库连接字符串相关的建议和最佳实践建议。 App.config 似乎是 Microsoft 首选的处理应用程序配置的方式,但我过去在使用它时遇到过一些麻烦 - 或者我只是不理解背后的哲学。

对我来说显而易见的第一件事是:永远不要以明文形式存储连接信息。但是,App.config 始终是明文。避免在 App.config 中存储人类可读信息的唯一方法似乎是 Protected Configuration。但同样重要的是:如果确实部署了应用程序,配置将以明文形式部署——加密(没有某些工具的帮助)似乎只有在应用程序首次启动时才有可能。

这对我来说似乎不安全,因为如果有人在第一次运行应用程序之前检查应用程序目录(存储配置的地方),他会收到很多纯文本的敏感信息。

另外:如何保护以非特权默认用户身份运行的应用程序中的配置? AFAIK 保存应用程序设置需要管理员权限。

Microsoft 真的想到了吗?还是微软提供了不同的方式?

最佳答案

您可以轻松加密 web.config 中的配置部分,

看起来像这样

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>R7cyuRk+SXJoimz7wlOpJr/YLeADGnwJVcmElHbrG/B5dDTE4C9rzSmmTsbJ9Xcl2oDQt1qYma9L7pzQsQQYqLrkajqJ4i6ZQH1cmiot8ja7Vh+yItes7TRU1AoXN9T0mbX5H1Axm0O3X/285/MdXXTUlPkDMAZXmzNVeEJHSCE=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>d2++QtjcVwIkJLsye+dNJbCveORxeWiVSJIbcQQqAFofhay1wMci8FFlbQWttiRYFcvxrmVfNSxoZV8GjfPtppiodhOzQZ+0/QIFiU9Cifqh/T/7JyFkFSn13bTKjbYmHObKAzZ+Eg6gCXBxsVErzH9GRphlsz5ru1BytFYxo/lUGRvZfpLHLYWRuFyLXnxNoAGfL1mpQM7M46x5YWRMsNsNEKTo/PU9/Jvnh/lT+GlcgCs2JRpyzSfKE7zSJH+TpIRtd86PwQ5HG3Pd2frYdYw0rmlmlI9D</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>

看看here > 您不需要工具来取消加密,这可以在代码中轻松完成,并且是一种常见的做法。

关于c# - 保护数据库连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16845636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com