>  SQL注入攻擊可能是黑客攻擊面向互聯(lián)網(wǎng)的SQLServer數(shù)據(jù)庫(kù)最常用的方式。任何使用動(dòng)態(tài)SQL、允許未經(jīng)檢驗(yàn)的用戶(hù)輸入提交到數(shù)據(jù)庫(kù)的應(yīng)用程序都面臨SQL注入攻擊的風(fēng)險(xiǎn),無(wú)論你的網(wǎng)絡(luò)有多">
如何保證sql server免遭sql注入攻擊?--

如何保證sql server免遭sql注入攻擊?--

ID:20231226

大小:55.50 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2018-10-09

如何保證sql server免遭sql注入攻擊?--_第1頁(yè)
如何保證sql server免遭sql注入攻擊?--_第2頁(yè)
如何保證sql server免遭sql注入攻擊?--_第3頁(yè)
如何保證sql server免遭sql注入攻擊?--_第4頁(yè)
資源描述:

《如何保證sql server免遭sql注入攻擊?--》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、如何保證SQLServer免遭SQL注入攻擊?>>  SQL注入攻擊可能是黑客攻擊面向互聯(lián)網(wǎng)的SQLServer數(shù)據(jù)庫(kù)最常用的方式。任何使用動(dòng)態(tài)SQL、允許未經(jīng)檢驗(yàn)的用戶(hù)輸入提交到數(shù)據(jù)庫(kù)的應(yīng)用程序都面臨SQL注入攻擊的風(fēng)險(xiǎn),無(wú)論你的網(wǎng)絡(luò)有多安全,或者你安裝了多少防火墻。最近有一項(xiàng)關(guān)于dash;也可能沒(méi)有對(duì)語(yǔ)法或者轉(zhuǎn)義符進(jìn)行驗(yàn)證?! QL注入攻擊是這樣進(jìn)行的:攻擊者修改現(xiàn)有命令行,通過(guò)在字符串值內(nèi)插入一個(gè)單引號(hào),或者在數(shù)字后面添加分號(hào),在轉(zhuǎn)義符后面寫(xiě)入SQL語(yǔ)句。命令行看上去類(lèi)似這樣:  execsel_CustomerDataCustomerId=47663;truncateT

2、ABLECustomer  這樣會(huì)執(zhí)行sel_CustomerData過(guò)程,然后運(yùn)行truncateTABLE命令,刪除Customer數(shù)據(jù)表的內(nèi)容。如果有ForeignKey約束這個(gè)數(shù)據(jù)表,數(shù)據(jù)庫(kù)將會(huì)返回錯(cuò)誤,向黑客提供受約束的數(shù)據(jù)表名稱(chēng)。一名聰明的黑客可以利用這個(gè)技巧,查找到數(shù)據(jù)庫(kù)里面每一個(gè)表的名稱(chēng)。然后,黑客能夠?qū)?shù)據(jù)插入你的數(shù)據(jù)庫(kù),或者從你的表中選擇數(shù)據(jù)(取決于數(shù)據(jù)庫(kù)給了應(yīng)用程序什么樣的權(quán)限)。當(dāng)黑客獲取了數(shù)據(jù)表中的數(shù)據(jù),就可以使用xp_sendmail或sp_send_dbmail向他們自己發(fā)送電子郵件。即使你已經(jīng)禁用這些過(guò)程,黑客可以輕易啟用這些過(guò)程,或者使用sp_O

3、A過(guò)程添加他們自己的過(guò)程?! ∪绾未_保SQLServer數(shù)據(jù)的安全,避免SQL注入?  有多種辦法可以保護(hù)你的數(shù)據(jù)庫(kù),避免這樣的攻擊?! ∈紫龋覀冃枰捎脭?shù)據(jù)庫(kù)安全的最佳實(shí)踐方法加固數(shù)據(jù)庫(kù)安全。這包括將數(shù)據(jù)庫(kù)的操作許可設(shè)置為最低級(jí)別(settingupthedatabasesecurityissionspossible.)。同時(shí),應(yīng)用程序不要直接訪(fǎng)問(wèn)數(shù)據(jù)表。所有對(duì)數(shù)據(jù)表的訪(fǎng)問(wèn)應(yīng)該通過(guò)存儲(chǔ)過(guò)程進(jìn)行,而且那些存儲(chǔ)過(guò)程不應(yīng)該包括任何動(dòng)態(tài)SQL?! ”苊鈱?duì)表的直接訪(fǎng)問(wèn),你可以很大地減少受攻擊的層面。但是,這并不是唯一必須做的事情。存儲(chǔ)過(guò)程也存在受到攻擊的可能性。雖然對(duì)存儲(chǔ)過(guò)程進(jìn)行攻擊需

4、要花費(fèi)更多的時(shí)間,但是,仍然有可能利用你的存儲(chǔ)過(guò)程對(duì)數(shù)據(jù)庫(kù)進(jìn)行破壞。存儲(chǔ)過(guò)程就是用來(lái)向數(shù)據(jù)庫(kù)中插入、更新和刪除數(shù)據(jù)。一個(gè)聰明的黑客可以利用你自己的存儲(chǔ)過(guò)程攻擊你?! ∵@是需要應(yīng)用開(kāi)發(fā)人員和你共同工作的方面,以確保被執(zhí)行的代碼(thecodebeingexecutedagainstthedatabase)是安全的。如果不確保應(yīng)用層的安全,防范SQL注入攻擊,其他的工作都將是徒勞的。數(shù)據(jù)只要進(jìn)入數(shù)據(jù)庫(kù),基本上不可能在數(shù)據(jù)庫(kù)內(nèi)進(jìn)行驗(yàn)證。這需要在應(yīng)用層對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證?! ?yīng)用程序與數(shù)據(jù)庫(kù)最簡(jiǎn)單配合使用的方法就是在應(yīng)用程序內(nèi)動(dòng)態(tài)生成SQL命令。下面的示例中,.代碼從前臺(tái)應(yīng)用程序中調(diào)用(po

5、pulate)v_Input變量:   Dimv_ConnAsNev_cmdAsNeand  v_cmd.Connection=v_Conn  v_cmd.mandType=mandType.Text  v_cmd.mandText=execsel_CustomerDataCustomerName=v_Input  Dimv_DRAsSqlDataReader  v_DR=v_cmd.executeReader  v_DR.Close()  v_DR=Nothing  v_cmd.Dispose()  v_cmd=Nothing  v_Conn.Close()  v_Conn=N

6、othing  v_DR.Close()  如果你不在v_Input變量中對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,就相當(dāng)于為SQL注入攻擊敞開(kāi)大門(mén)。如果你對(duì)輸入不進(jìn)行驗(yàn)證,就會(huì)允許攻擊者傳入一個(gè)單引號(hào)和一個(gè)分號(hào),這樣,將告訴SQLServer結(jié)束當(dāng)前的語(yǔ)句,轉(zhuǎn)而執(zhí)行另一段sql語(yǔ)句passinasinglequote,andasemicolon,entmovingontothenextstatementinthebatch。例如像這樣的值Smith;truncatetableCustomer;declaremyV=。通過(guò)SQLServer執(zhí)行的SQL語(yǔ)句會(huì)變成:TheresultingSQLstatem

7、entexecutedagainsttheSQLServer  execsel_CustomerDataCustomerName=Smith;truncatetableC12下一頁(yè)>>>>這篇文章來(lái)自..,。ustomer;declaremyV=  當(dāng)應(yīng)用程序(callingapplicationrunsthecode)運(yùn)行這段代碼的時(shí)候,將運(yùn)行存儲(chǔ)過(guò)程,然后表被清空。你需要進(jìn)行一些基本的驗(yàn)證,將變量中的任何單引號(hào)替換為兩個(gè)單引號(hào)。這樣,就可以中止SQLServer運(yùn)行刪除語(yǔ)句t

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。