与SQL Server的非可信连接的风险?

时间:2012-05-11 05:12:10

标签: asp.net sql-server security sqlconnection trustedconnection

不使用可信连接的风险是什么?

例如,这是一个场景:我创建了一个非常简单的应用程序,它只有4-5行代码,它使用与web.config中的连接字符串的SQL连接,并向我的数据库发送一个select命令,在界面中显示结果。

这里的安全弱点是什么?

编辑:

我知道可信连接与身份验证有关,我想知道我不知道如果我不使用系统会怎么被黑客入侵? (我将在我公司的服务器上使用我的应用程序,该应用程序是一个公共应用程序,因此每个公司成员都可以使用它,那么,如果它是本地公司应用程序,为什么还需要可信连接?)

3 个答案:

答案 0 :(得分:3)

从另一个角度来看,可信连接的主要好处是您不必在应用程序中管理密码。如果您的应用程序需要密码才能连接到SQL Server,那么您将密码(或连接字符串)放在何处,以便应用程序用户(或其他开发人员,系统管理员或外部顾问等)无法读取密码,但您可以在需要时仍然可以轻松改变它?

文件或注册表中的密码通常可由用户读取,因为当他们运行应用程序时,它必须检索密码,因此用户需要访问权限。或者系统管理员或顾问可以访问应用程序配置文件所在的文件系统。可以使用某种形式的加密来模糊密码,但是您必须保护并管理解密密钥。在应用程序中对密码进行硬编码使得难以更改,并且很可能在源控制系统中看到密码,这通常是相对不安全的系统(实际上,如果不是设计的话)。您可以创建一个Web服务,应用程序在启动时从中获取密码,但您必须以某种方式验证对服务的访问。

使用受信任的身份验证可以通过使操作系统负责身份验证来完全避免所有这些,除非您是世界级的安全程序员,否则Windows提供的机制比您自己创建的机制更可靠。

答案 1 :(得分:2)

  

我将在我公司的服务器和应用程序中使用我的应用程序   是一个公共应用程序,所以每个公司成员都可以使用它,为什么这样做   如果它是本地公司应用程序,我需要一个可信连接吗?

非可信连接中的安全风险在于如何存储SQL Server密码并在应用程序中使用它们。如果您将密码存储在配置文件或程序中的硬编码中,那么任何其他可以访问您的代码的开发人员都可以查看它,并且最坏的情况是可以更改数据库,从而可能破坏应用程序或窃取敏感信息。这也将是一个隐私泄露,你的公司可能会被起诉(你不能想象会发生什么)。

@Pondlife也很好地阐述了。

答案 2 :(得分:1)

AFAIK是受信任连接提供的唯一额外安全层,它是身份验证。如果使用可信连接,则Windows将在Active Directory中验证您的连接。

快速谷歌产生此链接:

What is a Trusted Connection?