日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MyBatis怎么防止SQL注入?(mybatis如何防sql注入)

MyBatis怎么防止SQL注入?

用#{參數(shù)}進行預編譯就可以防止了,千萬別用${}這種方式注入?yún)?shù)。

創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元金州做網(wǎng)站,已為上家服務,為金州各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

mybatis框架作為一款半自動化的持久層框架,其sql語句都要我們自己來手動編寫,這個時候當然需要防止sql注入。其實Mybatis的sql是一個具有“輸入+輸出”功能,類似于函數(shù)的結構,如下:

select id,title,author,content

from blog where id=#{id}

這里,parameterType標示了輸入的參數(shù)類型,resultType標示了輸出的參數(shù)類型?;貞衔?,如果我們想防止sql注入,理所當然地要在輸入?yún)?shù)上下功夫。上面代碼中高亮部分即輸入?yún)?shù)在sql中拼接的部分,傳入?yún)?shù)后,打印出執(zhí)行的sql語句,會看到sql是這樣的:

select id,title,author,content from blog where id = ?

不管輸入什么參數(shù),打印出的sql都是這樣的。這是因為mybatis啟用了預編譯功能,在sql執(zhí)行前,會先將上面的sql發(fā)送給數(shù)據(jù)庫進行編譯,執(zhí)行時,直接使用編譯好的sql,替換占位符“?”就可以了。因為sql注入只能對編譯過程起作用,所以這樣的方式就很好地避免了sql注入的問題。

mybatis中兩個占位符的區(qū)別?

mybatis的占位符區(qū)別

一、占位符一:#{xxx}

  PreparedStatement 預編譯sql語句有?占位符。 xxx表達式的寫法。

  參數(shù)類型為javabean類, xxx表達式必須和javabean中屬性對應的get方法名字一樣。

   如果 parameterType 傳輸單個簡單類型值,#{} 括號中可以是 value 或其它名稱。

二、占位符二: ¥{xxx}

  Statement拼接 sql語句沒有? 占位符會有SQL注入的漏洞。xxx 表達式的寫法。

  參數(shù)類型為javabean類, xxx 表達式必須和javabean中屬性對應的get方法名字一樣,

  如果parameterType傳輸單個簡單類型值,{} 括號中只能是 value。

MySQL中怎么用sql寫一個自動增長的字符串,如:yt0001?

MySQL為例,現(xiàn)在項目大部分都用框架實現(xiàn),比如MyBatis框架,輕量級,功能強大:

在MyBatis中,如果寫${變量名},則為直接把傳入的值填充到SQL語句中;

如果寫#{變量名},則為傳入的值只能作為值,放到SQL語句中。

舉例:

DELETE FROM student WHERE name=${stu_name}

如果這樣寫,假如用戶惡意傳入這樣一個字符串:abc OR 1=1,那么整個SQL就變成了

DELETE FROM student WHERE name=abc OR 1=1,結果就是全部數(shù)據(jù)都刪掉了。

這就是SQL注入,如果把${stu_name}換成#{stu_name},那么依然傳入上面的字符串,那么SQL是這樣的:DELETE FROM student WHERE name=`abc OR 1=1`,會刪除名字為abc OR 1=1的學生,沒有這個學生則什么都刪除不掉,這樣就防止了SQL注入。

到此,以上就是小編對于mybatis 防注入的問題就介紹到這了,希望這3點解答對大家有用。


當前名稱:MyBatis怎么防止SQL注入?(mybatis如何防sql注入)
URL網(wǎng)址:http://www.5511xx.com/article/ccshjoh.html