ASP.NET编程:ASP.NET2.0数据库之SQL Server平安性
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。asp.net|server|sql|平安|平安性|数据|数据库 SQLServer的安装有两个关于平安形式的选项。它们之间的不同在于由哪个软件实行认证历程。认证是一个确认将要毗连SQLServer的用户身份的历程。一旦实行了认证,SQLServer就可以考证这个用户是不是具有允许来毗连一个被哀求的资本,比方一个数据库。假如用户具有毗连数据库的允许,那末SQLServer将同意毗连哀求乐成,不然,毗连失利。这个考证用户允许的历程还被称为受权。・WindowsAuthentication(还被称为TrustedAuthentication大概IntegratedSecurity)利用举行毗连哀求历程的Windows用户身份来实行对数据库的受权。在这类情形下,毗连字符串不用供应显式的用户名和暗码。ASP.NET以一个名为"ASPNET"的当地用户来运转(大概在IIS6.0傍边利用用户名"NetworkService"),以是当利用WindowsAuthentication时,SQL将会反省这个用户是不是具有利用数据库的允许。此时,一切的ASP.NET使用程序都用这个不异的用户运转,以是该平安形式对这些使用程序厚此薄彼。固然能够在独自的ASP.NET历程中运转每个使用程序(独自的用户运转每一个程序),大概能够摹拟举行毗连哀求的扫瞄器客户的Windows用户身份,可是这些内容都超越了本书所要报告的局限。不外,客户摹拟的情形在Web使用程序中是WindowsAuthentication最多见的利用体例。
・SQLAuthentication针对在SQLServer内设置的用户来反省显式供应的用户名和暗码(无需触及操纵体系)。在这类情形下,在ASP.NET历程中运转的每一个使用程序都能以独自的证书来毗连数据库,如许就把使用程序公道地断绝开了(使用程序A假如没有B的用户名和暗码就不克不及毗连至B的数据库)。这是用于部署的Web使用程序的最多见认证形式,出格是在共享宿主的情形下。它的一个小弱点就是必要使用程序保存用于毗连的用户账户的暗码,而且假如该暗码被歹意用户猎取,那末将危及数据库的平安。可是,在本书前面将会看到,ASP.NET供应了一个平安的体例,将SQLAuthentication暗码以加密的格局保留在Web.config文件中,如许就下降了暗码被猎取的风险。
・MixedMode是SQLServer的设置,它既同意WindowsAuthentication,也同意SQLAuthentication。
在安装SQLServer大概SSE时,要选择一种认证形式。在SQLServer中,有导游会在平安步骤中匡助选择,而在SSE中,默许选择是WindowsAuthentication。假如要安装SQLAuthentication,就必需显式地设置。本文利用的是WindowsAuthentication。
假如已安装了SQLServer大概SSE,就可以经由过程翻开RegEdit来检察所指定的认证形式(固然必要先备份),找到HKey_Local_Machine/Software/Microsoft/MicrosoftSQLServer并搜刮LoginMode。值为1的注册子键暗示WindowsAuthentication,而值2暗示MixedAuthentication形式。
表3-1总结了这些形式之间的区分。
表3-1
WindwosAuthenticationSQLAuthentication可交换称号TrustedAuthentication
IntegratedSecurity
没有,可是MixedModeAuthentication同意利用Windows大概SQLAuthentication典范情况外部网因特网用户和认证历程列表的地位WindowsSQLServerSSE安装默许安装必要指定安装毗连字符串Trusted_connection=true大概IntegratedSecurity=trueuser=username;
password=passwordASP.NETWeb使用程序的用户ASP.NET历程、ASPNET(IIS5.x)大概NetworkService(IIS6)SQL用户上风较好的平安性;能够对用户在SQL事务和Windows事务中的举动举行跟踪无需创立新账户便可在宿主机上部署;自力于操纵体系
宿主的外部网站点只需一样平常手艺
为使用程序供应加倍天真的体例以分歧的证书来毗连每一个数据库优势赐与Web使用程序Windows证书有大概会将OS中的权限局限设置过年夜暗码存储在Web使用程序中(在Windows认证中则不是)。确认暗码保留在Web.config文件中并已加密。
同意利用sa证书的Web使用程序的初级操纵。老是为ASP.NETWeb使用程序创立新的证书并只赐与所需的权限
如今,晓得了SQL利用平安的体例,我们来思索数据利用者(DataSource控件)将怎样满意需求。起首,利用从VWD和VWDWebServer(Cassini)猎取的数据,次要是在计划和测试的时分。第二,在部署以后应该从IIS会见数据。这两个数据利用者有分歧的用户名。VWD和VWDWebServer利用登录进Windows的职员的称号,而IIS程序利用称号ASPNET。
假如SQLServer利用Windows认证,那末SqlDataSource控件必要在毗连字符串中包括以下代码:IntegratedSecurity=true(大概Trusted_connection=true)。这个参数将唆使SQLServer依据哀求者的Windows登录账户对数据哀求举行认证。假如是登录安装SSE的用户,其证书将授与会见SSE的权限。利用VWD和VWDWebServer将统统顺遂,由于VWWebServer的用户被以为是登录进Windows的程序职员,因而具有SSE上的账户。可是,即便是使用程序在VWD以外事情一般,当站点迁徙至IIS后,也会不一般。IIS是在名为ASPNET的用户账户下运转的(大概是在IIS6/Windows2003Server中的NetworkService)。因而,运转着IIS的呆板的办理员必需增加ASP.NET用户并授与其允许。这个历程超越了本书解说的局限,可是在良多IIS办理员手册中都有具体的形貌。总而言之,假如SQLServer利用的是Windows认证,就可以利用VWD和VWDWebServer举行本书的实习。只要在授与了会见数据库的ASP.NET历程账户允许以后,您的页面才能够在IIS上运转。
假如SQLServer利用的是SQL认证,SQL将举行本人的认证历程。这个历程将不依托Windows的用户列表。毗连字符串中包括了两个参数:user=username,password=password。如今就能够从VWD、VWDWebServer大概IIS中利用页面了,由于不必要在Windows中创立用户账户。可是,我们还要利用SQLServer中的账户。唯一的默许账户是sa。在部署之前,应该在SQLServer中创立别的一个账户,该账户只具有实行ASPX页面的权限。假如不创立sa之外的交换账户(和暗码以回护sa),那末将会使站点处于最出名、最易于使用的平安毛病当中。任何黑客都晓得利用空暗码的userID=sa来登录。
对两种认证形式来讲,当利用后面所述的毗连字符串时,用户将以初始账户登录进SQLServer。这个账户就是sa,暗示体系办理员,从称号上能够看出,它具有对一切工具的一切权限。在以后的SQLServer版本中,不克不及以暗码为NULL的sa来安装服务。而在SSE中,必需以参数SAPWD="MyStrongPassword"来安装。这里的强暗码暗示最少不为NULL。最好利用很多于七位的字符并确保利用字母、数字和标记的混和情势。在先生实习以外的年夜多半情形下,必要为每一个数据库和使用程序指定一个账户。应制止让一个使用程序具有能够会见其他使用程序数据的权限。感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
页:
[1]