黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

防SQL注入:生成參數化的通用分頁查詢語句

系統 2052 0
原文: 防SQL注入:生成參數化的通用分頁查詢語句

????? 前些時間看了玉開兄的“ 如此高效通用的分頁存儲過程是帶有sql注入漏洞的 ”這篇文章,才突然想起某個項目也是使用了累似的通用分頁存儲過程。使用這種通用的存儲過程進行分頁查詢,想要防SQL注入,只能對輸入的參數進行過濾,例如將一個單引號“'”轉換成兩個單引號“''”,但這種做法是不安全的,厲害的黑客可以通過編碼的方式繞過單引號的過濾,要想有效防SQL注入,只有參數化查詢才是最終的解決方案。但問題就出在這種通用分頁存儲過程是在存儲過程內部進行SQL語句拼接,根本無法修改為參數化的查詢語句,因此這種通用分頁存儲過程是不可取的。但是如果不用通用的分頁存儲過程,則意味著必須為每個具體的分頁查詢寫一個分頁存儲過程,這會增加不少的工作量。

????? 經過幾天的時間考慮之后,想到了一個用代碼來生成參數化的通用分頁查詢語句的解決方案。代碼如下:

Code

?

使用方法:

?

PagerQuery query = new PagerQuery();
query.PageIndex = 1;
??? query.PageSize = 20;
??? query.PK = "ID";
??? query.SelectClause = "*";
??? query.FromClause = "TestTable";
??? query.SortClause = "ID DESC";

??? if (!string.IsNullOrEmpty(code))
??? {
??? ?query.WhereClause.Append(" and ID= @ID");
??? }

a)?GenerateCountSql ()方法生成的語句為:
Select count(0) from TestTable Where 1=1 and ID= @ID

b)?GenerateSql()方法生成的語句為:
WITH t AS (SELECT ROW_NUMBER() OVER(ORDER BY ECID DESC) as row_number, * from TestTable where 1=1 and ID= @ID) Select * from t where row_number BETWEEN 1 and 20

c)?GenerateSqlIncludetTotalRecords()方法生成的語句為:
WITH t AS (SELECT ROW_NUMBER() OVER(ORDER BY E.ECID DESC) as row_number,* from TestTable where 1=1 and ID= @ID) Select * from t where row_number BETWEEN 1 and 20;Select count(0) from ECBasicInfo where 1=1 and ID= @ID;

注意:以上代碼生成的SQL語句是曾對SQL SERVER 2005以上版本的,希望這些代碼對大家有用

防SQL注入:生成參數化的通用分頁查詢語句


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論