我想知道与SQL Server建立安全连接的最佳方法是什么?这是我的场景。在我的工作中,我们有SQL Server 2012 Standard。我的老板想让我利用TDE创建一个新的数据库。我发现你必须有企业版才能使用TDE。我们调查了一下,它将花费一大笔钱,所以我们不打算购买企业版。因此,我在考虑使用存储过程与DB进行交互。这比通过web提交SQL查询更安全吗?此外,与web应用程序/数据库服务器通信和传输数据的最佳安全措施是什么?
提前谢谢你,
布拉德
编辑:还有,有没有办法在连接字符串中安全地发送用户名/密码凭据?
发布于 2014-04-04 04:23:34
存储过程在某种意义上会更安全,因为您只需将对象提交到该过程中即可生成所需的结果。这将屏蔽底层SQL语句,因此可以认为它更安全。我认为大多数地方在域环境中都依赖于SQL的Windows身份验证方面。
它是相当安全的,如果你的站点被SSL包裹起来,那就更安全了。避免标准的SQL身份验证,它是基于文本的,不应该被真正考虑。
在代码方面,您可能希望在数据库和网站之间建立一个层来完成所有繁重的任务。这在某种程度上混淆了你的网站所做的事情,因为它正在召唤你的中间人,而他处理所有真正的事务。
另外,用户将如何与您的网站进行交互?他们会被要求先登录吗?有什么机制可以控制这一点?在您真正考虑哪种方法将是安全性和可用性的最佳平衡之前,还有许多其他设计细节需要弄清楚。我会使用WindowsAuth/SSL,并使用一个安全帐户来执行所有事务。它很容易设置,而AFAIK不容易破解。
发布于 2014-04-04 04:42:37
这是两件不同的事情- TDE只会帮助你加密文件系统上的数据(所以如果我可以访问你的数据库所在的文件系统,如果你使用TDE,我将无法读取它)。
应用程序和数据库之间的通信是不同的问题。您可以执行以下几项操作:
然而,尤其是存储过程部分可能会很痛苦(当涉及到存储过程时,像EF、LinqToSQL或nHibernate这样的对象关系管理非常糟糕)。此外,这种方法也不能保证没有人能够看到从数据库服务器到web服务器的数据)。
如果在webserver和db服务器之间嗅探数据可能是一个问题,那么您必须编写用于访问数据的webservice。此best服务应该位于数据库服务器的可信网络上(尽可能接近数据库-相同的盒子是最好的)。web服务器应通过https调用此web服务(因此在web服务器和web服务之间嗅探数据是不可能的),并使用身份验证来访问web服务(建议使用windows身份验证)。
https://stackoverflow.com/questions/22848020
复制相似问题