青海網站建設、網絡推廣最好的公司--您身邊的網站建設專家,馬上拿起電話,聯系我們:0971-8235355   
青海西寧網站建設、網站制作公司-西寧威勢電子信息服務有限公司 首頁 |  公司簡介 |  網站建設 |  網絡推廣 |  空間租用 |  域名注冊 |  企業郵局 |  網絡安全 |  網站編程 |  客服中心 |  聯系我們 |  人才招聘
 
西寧威勢最新網站制做案例展示
Lastest Project
 
西寧網站建設  
當前位置為:首頁 >> .NET編程 >> 正文  
[原創]ACCESS 查詢時使用 LIKE語句

文章來源: 西寧威勢電子信息服務有限公司     發布時間:2011-3-19    瀏覽次數:8688    tags:OleDbParameter acces

  在ASP.NET頁面中,如果要用到LIKE語句查詢,可以直接像寫ASP一樣拼接,這樣查詢是沒有問題的,拼接出來的語句如下:

sql = @"select * from User where [UserName] like '%" + this.TB_UserName.Text + "%' and [National] like '%" + this.DDL_National.SelectedValue.ToString() + "%'   ....

點擊頁面查詢按鈕,能正常返回結果。

    當然稍有安全常識的人都知道,這樣的寫法直接拿到數據庫查詢是肯定會引起問題的,那就是SQL注入,所以在查詢前一定要對拼接過來的值進行驗證。但是驗證的話又太麻煩,于是可以用參數式傳遞來解決,SQL語句如下:

    sql = "select * from QhWins_soldier where [UserName] like '%@UserName%' and [National] like '%@National%'  .....

  OK,再進一步定義參數,把參數放在OleDbCommand 的實例cmd中去,帶到數據庫查詢,哈哈,心里想的美滋滋的,測試一下,竟然查詢不到任何結果,而頁面也不報錯,TMD,郁天下之大悶也!搞來搞去,原來是MS的BUG,美夢破裂!

    于是走曲線救國,引入instr()函數,SQL語句如下:

sql = "select * from QhWins_soldier where instr([UserName],@UserName) and instr([National],@National)  and  ....

  還是參數式傳參,問題解決!

   注意,用此方法還是要對參數進行過濾,不然還是會有注入的,測試方法:

.net 搜索注入,原創,哈哈
在搜索中輸入
關鍵字) and (1=1  ,然后搜索,可以注入instr()函數,此方法適合注入:用ACCESS做的站,用到查詢語句的時候。

原理:

語法錯誤 (操作符丟失) 在查詢表達式......省略
改進后語句變成下面的,
 'instr([Birthplace],西寧) and (1=1) order by [id] desc'

成功注入


上一篇:[原創] ASP.NET 文章內容分頁程序
下一篇:[原創]修改 Fckeditor ,使之保存文件時自動按時間創建目錄,并修復鏈接上傳失效的BUG
評論列表
正在加載評論……
  
評論   
呢  稱:
驗證碼: 若看不清請點擊更換!
內  容:
 
 
  在線洽談咨詢:
點擊這里,在線洽談   點擊這里,在線洽談   點擊這里,在線洽談
與我交談  與我交談 與我交談
乘車路線    匯款方式   加盟合作  人才招聘  
公司地址:青海省西寧市西關大街73號(三二四部隊招行所四樓)     青ICP備13000578號-1 公安機關備案號:63010402000123    
QQ:147399120    mail:[email protected]    電話: 13897410341    郵編:810000
© Copyright( 2008-2009) QhWins.Com All Rights Reserved    版權所有:西寧威勢電子信息服務有限公司 未經書面制授權,請勿隨意轉載!
業務:青海網站制做青海網站建設青海網頁設計西寧網站制做西寧網站建設青海域名注冊青海網絡推廣青海網站推廣青海空間租用青海軟件開發網站安全網絡安全

香港六合彩开奖结果网