首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与SQL Server建立不受信任的连接的风险?

与SQL Server建立不受信任的连接的风险?
EN

Stack Overflow用户
提问于 2012-05-11 13:12:10
回答 3查看 591关注 0票数 0

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

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

这里的安全弱点是什么?

编辑:

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-11 16:10:55

换个角度来看,可信连接的主要好处是您不必在应用程序中管理密码。如果您的应用程序需要密码才能连接到SQL Server,那么您应该将密码(或连接字符串)放在哪里,以便应用程序用户(或其他开发人员、系统管理员或外部顾问等)不能阅读,但你仍然可以很容易地在需要时更改它?

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

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

票数 3
EN

Stack Overflow用户

发布于 2012-05-11 16:44:52

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

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

@Pondlife也做了很好的阐述。

票数 2
EN

Stack Overflow用户

发布于 2012-05-11 13:27:06

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

在谷歌上快速搜索会出现以下链接:

What is a Trusted Connection?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10545782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档