【发布时间】:2020-06-10 16:22:21
【问题描述】:
我在 .NET Framework 中有一个 Web API,现在 UID 和密码在连接字符串中以纯文本形式出现。由于安全扫描,我希望这些值在 Web 配置中加密,而不是纯文本。
纯文本中的连接字符串:
<connectionStrings>
<add name="DataConnection1" connectionString="Data Source=server1;Initial Catalog=db1;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="DataConnection2" connectionString="Data Source=server1;Initial Catalog=db2;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="DataConnection3" connectionString="Data Source=server2;Initial Catalog=db123;UID=usn;PWD=password@123" providerName="System.Data.SqlClient" />
</connectionStrings>
我对连接字符串的加密进行了研究。其中一种方法是使用 ASPNET_REGIIS 实用程序。但由于部署应用程序的服务器上存在一些与访问相关的限制,我无法使用 RsaProtectedConfigurationProvider。
只是想帮助找出一些其他方法来加密网络配置的连接字符串。
【问题讨论】:
-
我们解决此问题的方法是使用集成身份验证,然后您根本不必将用户名/密码放在 web.config 中。您只需创建一个对您的数据库具有权限的活动目录 ID,然后让您的应用程序的 IIS 应用程序池在该 ID 下运行。另一种解决方法是将连接字符串保留在注册表中。
标签: c# .net encryption webapi