6

我们正在将我们的一个站点迁移到 ASP.Net。我们不想使用集成安全,它使用 windows 帐户连接到 sql server(不打算解释为什么,它只是不可能的)。我们创建了一个用户名和密码来连接到 SQL Server,并希望使用该用户名和密码,但是,我们也不希望其他开发人员看到这些信息(很容易从 web.config 中读取)......我知道它可以加密,但开发人员也可以很容易地解密它——而且加密会影响性能。

这个问题有什么解决办法吗?

4

5 回答 5

2

这是一个关于在 ASP.NET 2.0 应用程序中加密配置信息的好教程

只是不要给其他开发人员钥匙

或者,您可以通过已安装的证书锁定 SQL 的身份验证。这样,您就可以根据客户端而不是用户来设置安全性。 http://msdn.microsoft.com/en-us/library/ff649255.aspx

我们的标准做法是在开发数据库中使用一个“开发人员登录”,该数据库具有有限的访问权限,并为生产框使用不同的用户名/密码。开发人员无权访问生产框,只能访问主要开发人员,然后通过部署脚本复制生产 web.config。

于 2010-06-01T21:10:24.970 回答
0

开发人员是否需要访问 web.config 文件?如果是这样,我想你可能不走运。如果没有,这意味着他们不需要更改 web.config 文件,请更改其权限,以便只有管理员和 asp.net 进程可以读取该文件。

于 2010-06-01T21:11:35.047 回答
0

根据我的经验,向内部开发人员隐藏这种事情往往很困难。即使在 webconfig 中加密配置信息,仍然会显示您的开发人员是否刚刚通过代码...

我猜想,如果你不得不这样做,你可以在代码中为你的数据库字符串创建一个私有常量字符串,然后在编译的应用程序上使用 Dotfuscator 或类似的。显然,源代码本身也必须加密,否则您的开发人员将无法访问它。

于 2010-06-01T21:13:59.947 回答
0

您不能真正保护密码免受开发人员的侵害——此外,它有什么意义?您可以做的是拥有单独的开发服务器,开发人员可以访问和生产环境,而他们没有。

开发人员不需要直接登录到数据库来运行一些测试或其他东西吗?如果他们这样做,那么使用应用程序使用的同一帐户进行测试是有意义的,否则测试结果可能无法反映现实。

于 2010-06-02T07:48:16.527 回答
0

prompt for the password,当您第一次连接并在会话中跟踪密码时。现在只有您可以从任何地方连接数据库。将所有这些重定向到应用程序不可用页面,以让其他没有密码的用户。

于 2010-06-02T07:54:19.027 回答