>  在google中搜索分頁(yè)存儲(chǔ)過(guò)程會(huì)出來(lái)好多結(jié)果,是大家常用的分頁(yè)存儲(chǔ)過(guò)程,今天我卻要說(shuō)它是有漏洞的,而且漏洞無(wú)法通過(guò)修改存儲(chǔ)過(guò)程進(jìn)行補(bǔ)救,如果你覺得我錯(cuò)了,請(qǐng)讀下去也許你會(huì)改變看法。 ">
如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--

如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--

ID:20317288

大?。?3.00 KB

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

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

如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--_第1頁(yè)
如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--_第2頁(yè)
如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--_第3頁(yè)
資源描述:

《如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、如此高效通用的分頁(yè)存儲(chǔ)過(guò)程是帶有sql注入漏洞的>>  在google中搜索分頁(yè)存儲(chǔ)過(guò)程會(huì)出來(lái)好多結(jié)果,是大家常用的分頁(yè)存儲(chǔ)過(guò)程,今天我卻要說(shuō)它是有漏洞的,而且漏洞無(wú)法通過(guò)修改存儲(chǔ)過(guò)程進(jìn)行補(bǔ)救,如果你覺得我錯(cuò)了,請(qǐng)讀下去也許你會(huì)改變看法?! ⊥ǔ4蠹叶紩?huì)認(rèn)為存儲(chǔ)過(guò)程可以避免sql注入的漏洞,這適用于一般的存儲(chǔ)過(guò)程,而對(duì)于通用分頁(yè)存儲(chǔ)過(guò)程是不適合的,請(qǐng)看下面的代碼和分析!  一般的通用的分頁(yè)存儲(chǔ)過(guò)程代碼如下:  通用分頁(yè)存儲(chǔ)過(guò)程CREATEPROCEDUREpaginationtblNamevarchar

2、(255),--表名strGetFieldsvarchar(1000)='*',--需要返回的列fldNamevarchar(255)='',--排序的字段名PageSizeint=10,--頁(yè)尺寸PageIndexint=1,--頁(yè)碼doCountbit=0,--返回記錄總數(shù),非0值則返回OrderTypebit=0,--設(shè)置排序類型,非0值則降序str['+tblName+']['+tblName+']'end--以上代碼的意思

3、是如果doCount傳遞過(guò)來(lái)的不是0,就執(zhí)行總數(shù)統(tǒng)計(jì)。以下的所有代碼都是doCount為0的情況  elsebeginifOrderType!=0beginsetstrTmp='<(selectmin'setstrOrder='orderby['+fldName+']desc'--如果OrderType不是0,就執(zhí)行降序,這句很重要!end  elsebeginsetstrTmp='>(selectmax'setstrOrder

4、='orderby['+fldName+']asc'endifPageIndex=1beginifstr['+tblName+']['+tblName+']'+strOrder--如果是第一頁(yè)就執(zhí)行以上代碼,這樣會(huì)加快執(zhí)行速度end  elsebegin--以下代碼賦予了strSQL以真正執(zhí)行的SQL代碼setstrSQL='selecttop'+str(PageSize)+''+strGetFiel

5、ds+'from['+tblName+']e+']'+strTmp+'(['+fldName+'])from(selecttop'+str((PageIndex-1)*PageSize)+'['+fldName+']from['+tblName+']'+strOrder+')astblTmp)'+strOrderifstr['+tblName+']e+&

6、#39;]'+strTmp+'(['+fldName+'])from(selecttop'+str((PageIndex-1)*PageSize)+'['+fldName+']from['+tblName+']p)and'+strWhere+''+strOrderendendexec(strSQL)GO  大家可以看到上面的12下一頁(yè)>>>>這篇文章來(lái)自..,。存儲(chǔ)過(guò)程中是通過(guò)一些步驟最終拼接成一個(gè)s

7、ql字符串,然后通過(guò)exec執(zhí)行這個(gè)串得到分頁(yè)的結(jié)果?! ∥覀兗俣ㄒ鲆粋€(gè)這樣的查詢,通過(guò)用戶名UserName模糊查詢用戶,為了敘述方便,便于理解我們只考慮取第一頁(yè)的情況,取出存儲(chǔ)過(guò)程中取第一頁(yè)的拼串行如下:setstrSQL='SELECTTOP'+str(PageSize)+''+strGetFields+'from['+tblName+'] e為UserAccount,strOrder為ORDER BY IDDESC那么上面一行可以寫成如下

8、形式:  setstrSQL='SELECTTOP20* from[UserAccount] sdog  我們用SqlParameter傳遞參數(shù)給分頁(yè)存儲(chǔ)過(guò)程strSSQLServer2000的數(shù)據(jù)庫(kù),而非使用SQL2005的新特性分頁(yè)?! ∥恼拢簓ukaizhao/上一頁(yè)12>>>>這篇文章來(lái)自..,。

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(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)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。