日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
sql注入的攻擊原理是什么?(如何有效防止SQL注入攻擊:簡(jiǎn)單易懂的防御方法及實(shí)踐經(jīng)驗(yàn))

sql注入的攻擊原理是什么?

SQL注入式攻擊的主要形式有兩種。

1、直接注入式攻擊法

直接將代碼插入到與SQL命令串聯(lián)在一起并使得其以執(zhí)行的用戶輸入變量。由于其直接與SQL語(yǔ)句捆綁,故也被稱為直接注入式攻擊法。

2、間接攻擊方法

它將惡意代碼注入要在表中存儲(chǔ)或者作為原數(shù)據(jù)存儲(chǔ)的字符串。在存儲(chǔ)的字符串中會(huì)連接到一個(gè)動(dòng)態(tài)的SQL命令中,以執(zhí)行一些惡意的SQL代碼。注入過程的工作方式是提前終止文本字符串,然后追加一個(gè)新的命令。如以直接注入式攻擊為例。就是在用戶輸入變量的時(shí)候,先用一個(gè)分號(hào)結(jié)束當(dāng)前的語(yǔ)句。然后再插入一個(gè)惡意SQL語(yǔ)句即可。由于插入的命令可能在執(zhí)行前追加其他字符串,因此攻擊者常常用注釋標(biāo)記“—”來(lái)終止注入的字符串。執(zhí)行時(shí),系統(tǒng)會(huì)認(rèn)為此后語(yǔ)句位注釋,故后續(xù)的文本將被忽略,不背編譯與執(zhí)行。

mybatis like查詢?cè)趺捶乐箂ql注入?

要防止SQL注入,可以使用參數(shù)綁定的方式來(lái)執(zhí)行Like查詢。
在MyBatis中,可以使用`#{} `來(lái)構(gòu)建參數(shù)占位符,而不是直接在SQL語(yǔ)句中拼接參數(shù)值。
例如,假設(shè)我們想要執(zhí)行一個(gè)Like查詢來(lái)查找名字以"abc"開頭的用戶:
```xml

```
在這個(gè)示例中,`#{name}`是一個(gè)參數(shù)占位符,MyBatis會(huì)根據(jù)傳入的參數(shù)值自動(dòng)將其替換為安全的SQL字符串。
注意,使用參數(shù)占位符不僅可以防止SQL注入,還可以避免因?yàn)閰?shù)值中包含特殊字符而導(dǎo)致的SQL語(yǔ)法錯(cuò)誤。
可以使用類似的方式來(lái)構(gòu)建其他類型的Like查詢,只需要根據(jù)實(shí)際的SQL語(yǔ)句進(jìn)行調(diào)整。

MyBatis怎么防止SQL注入?

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

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

select id,title,author,content

from blog where id=#{id}

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

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

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

到此,以上就是小編對(duì)于防止sql注入攻擊的方式的問題就介紹到這了,希望這3點(diǎn)解答對(duì)大家有用。


網(wǎng)站標(biāo)題:sql注入的攻擊原理是什么?(如何有效防止SQL注入攻擊:簡(jiǎn)單易懂的防御方法及實(shí)踐經(jīng)驗(yàn))
新聞來(lái)源:http://www.dlmjj.cn/article/ccogihe.html