我们目前使用连接字符串来验证我们的数据库凭据。由于成长和合规性,开发人员不再被允许“查看”我们的网站使用的数据库凭证。这个问题的解决方案是使用集成身份验证。我们计划为每个应用程序池设置一个用户,然后允许该用户访问数据库。
我的问题是:这种方法有什么安全问题吗?至于从连接字符串中删除DB凭据,有没有更好(更简单或更简单)的方法我们应该/可以采取呢?
发布于 2012-03-05 00:40:51
如果您需要保护和审核对生产数据库的访问,则Windows身份验证是比Sql身份验证更好的选择,原因如下:
它不会给你的是:
这种方法的问题已经在其他文章中讨论过;特别是对于ASP.Net应用程序,您必须考虑是否要使用模拟/委派(where服务器可以充当访问它的NT用户)或受信任的用户模型(在该模型中,您配置固定的身份来访问某些资源)。
由于所使用的IIS版本,这一点更加复杂。
发布于 2012-03-04 21:39:07
如果您的连接字符串存储在一个web.config文件中,那么您可以创建该文件的一个单独的生产版本,开发人员看不到它。这比使用应用程序池的集成身份验证更容易测试和设置。
不过,有一句话要警告:如果你对开发人员限制太多,就会减慢他们的变化速度。由于世界上的其他地方确实在不断变化,这通常会以应用程序成为一个死亡的遗留包而告终。如果你打算成长、改进或扩展,这是很危险的。
发布于 2012-03-04 21:40:33
应用程序池标识的使用设置起来相当复杂,考虑到trust and delegation问题。一个更好的选择是使用加密的securing connection strings。
https://stackoverflow.com/questions/9555098
复制相似问题