不使用可信连接的风险是什么?
例如,这里是一个场景:我创建了一个非常简单的应用程序,它只有4-5行代码,它使用一个SQL连接和我在web.config中的连接字符串,并向我的数据库发送一个select命令,并在一个界面中显示结果。
这里的安全弱点是什么?
编辑:
我知道可信连接与身份验证有关,我想知道的是,如果我不使用它,我不知道系统如何被黑客攻击?(我将在公司的服务器上使用我的应用程序,并且该应用程序是公共应用程序,因此每个公司成员都可以使用它,那么如果它是本地公司应用程序,为什么我还需要可信连接呢?)
发布于 2012-05-11 16:10:55
换个角度来看,可信连接的主要好处是您不必在应用程序中管理密码。如果您的应用程序需要密码才能连接到SQL Server,那么您应该将密码(或连接字符串)放在哪里,以便应用程序用户(或其他开发人员、系统管理员或外部顾问等)不能阅读,但你仍然可以很容易地在需要时更改它?
文件或注册表中的密码通常可以被用户读取,因为当他们运行应用程序时,它必须检索密码,因此用户需要访问。或者系统管理员或顾问可以访问应用程序配置文件所在的文件系统。使用某种形式的加密来混淆密码是可能的,但是您必须保护和管理解密密钥。在应用程序中对密码进行硬编码使得密码很难更改,并且很可能在源代码控制系统中可见,而源代码控制系统通常是一个相对不安全的系统(实际上,如果不是设计的话)。您可以创建一个web服务,应用程序在启动时从该服务获取密码,但随后您必须以某种方式验证对该服务的访问。
使用可信身份验证使操作系统负责身份验证,从而完全避免了这一切,除非您是世界级的安全程序员,否则Windows提供的机制很可能比您自己创建的机制更可靠。
发布于 2012-05-11 16:44:52
我将在公司的服务器上使用我的应用程序,并且该应用程序是公共应用程序,因此每个公司成员都可以使用它,那么如果它是本地公司应用程序,为什么我还需要可信连接?
不受信任连接中的安全风险在于如何存储SQL server密码以及如何在应用程序中使用它们。如果您将密码存储在配置文件中或将密码存储在程序中硬代码中,则有权访问您的代码的任何其他开发人员都可以查看它,在最坏的情况下,可能会以这种方式更改数据库,从而可能破坏应用程序或窃取敏感信息。这也会侵犯隐私,你的公司可能会因此而被起诉(你无法想象会发生什么)。
@Pondlife也做了很好的阐述。
发布于 2012-05-11 13:27:06
AFAIK,可信连接提供的唯一额外的安全层是身份验证。如果使用可信连接,则Windows将在Active Directory中对您的连接进行身份验证。
在谷歌上快速搜索会出现以下链接:
https://stackoverflow.com/questions/10545782
复制相似问题