0

不使用受信任的连接有什么风险?

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

这里的安全弱点是什么?

编辑:

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

4

3 回答 3

3

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

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

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

于 2012-05-11T08:10:54.917 回答
2

我将在我公司的服务器上使用我的应用程序,并且该应用程序是公共应用程序,因此每个公司成员都可以使用它,那么如果它是本地公司应用程序,我为什么需要信任连接?

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

@Pondlife 也很好地阐述了。

于 2012-05-11T08:44:51.750 回答
1

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

一个快速的谷歌产生这个链接:

什么是可信连接?

于 2012-05-11T05:27:05.670 回答