连接ASP.NET 3.5 Web应用程序和SQL Server数据库的最安全方法是什么?

时间:2009-10-19 01:35:51

标签: asp.net sql-server iis security

我有一个在.net 3.5中开发的Web应用程序和一个SQL Server数据库。

当前的auth方法是web.config中的连接字符串,将身份验证详细信息移出纯文本似乎是一个好主意。

所以,我有两个问题:

  1. 可信连接 - 此处的密码策略是严格的,需要经常更改。这是否意味着我每次到期时都必须更新网站的密码?

  2. 还有其他/更好的选择吗?

4 个答案:

答案 0 :(得分:2)

作为可信连接的替代方案,您可以查看有关如何加密web.config的this set of articles

简而言之,如果从命令行调用

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"
来自默认站点的应用程序connectionStrings的web.config中的

部分SampleApplication将使用RSA加密。

答案 1 :(得分:1)

我认为设置用户名/密码更好,因为我不希望运行我的IIS服务器的用户能够访问大量数据库。我更愿意将它集中在哪里,对于这个应用程序,有一个用户,该用户只能访问这个数据库。

您确实需要确定您的web.config文件是安全的,因此您确实需要安全性。

如果您想要更高的安全性,可以使用依赖注入框架,并注入具有用户名/密码的已编译类,并使用该连接字符串。如果你想要一些更安全的外表,这个类可能会被混淆。

答案 2 :(得分:0)

不,您不必继续更改可信连接详细信息。您不在那里存储密码,因此密码更改不会影响您。 (如果您使用的是基本身份验证,请让用户自己连接到SQL框)

但是 - 如果您的应用程序池作为特定用户运行,并且该用户的密码已更改,则您需要更新该密码。您可以考虑让用户的密码不会过期。

答案 3 :(得分:0)

可信连接不是一个选项?频繁更改的密码不应成为您决定的限制因素,因为您可以信任您无需输入密码。

另一种选择是encrypting the connection string