6

我们正在将其中一个网站迁移到ASP.Net。我们不想使用集成的安全性,它使用windows帐户连接到sql server(不打算进入为什么,它只是没有问题)。我们创建了一个连接到SQL Server的用户名和密码,并且希望使用该用户名和密码,但是,我们也不希望其他开发人员看到这些信息(可以从web.config中轻松读取)....我知道它可以被加密,但它可以很容易地被开发人员解密 - 再加上加密性能会受到影响。.Net SQL Server连接字符串 - 隐藏其他开发人员的密码

有没有解决这个问题的方法?

回答

2

这里的一对Encrypting Configuration Information in ASP.NET 2.0 Applications

一个很好的教程就是不给其他开发商的关键

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

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

+1

这适用于我和你的评论,因为我从来没有加密过web.config文件。但是在阅读你的链接后,防止开发者设置一个对象(将sqlConn作为新的sqlconnection(getConfigSection),IIS自动解密),然后设置一个字符串变量= object.connectionString?或者使用调试器来获取该信息进行逐步调试? – Tommy 2010-06-01 21:14:17

+0

您将不得不从工作站或证书进行身份验证,因为所有开发人员都可以访问调试器 – Glennular 2010-06-01 21:25:47

0

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

0

根据我的经验,从您的内部开发者那里隐藏这种东西往往是困难的。即使在webconfig中加密配置信息仍然会显示您的开发人员是否只是单步执行代码...

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

0

你无法真正保护开发者的密码 - 除此之外,它有什么意义? 您可以做的是将独立的开发服务器提供给开发人员具有访问权限和生产环境的开发服务器,而不是这些开发服务器。

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

0

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