亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) php教程 PHP開(kāi)發(fā) 淺談mybatis中的#和$的區(qū)別 以及防止sql注入的方法

淺談mybatis中的#和$的區(qū)別 以及防止sql注入的方法

Jan 05, 2017 pm 05:21 PM

mybatis中的#和$的區(qū)別

1. #將傳入的資料都當(dāng)成一個(gè)字串,會(huì)對(duì)自動(dòng)傳入的資料加一個(gè)雙引號(hào)。如:order by #user_id#,如果傳入的值是111,那麼解析成sql時(shí)的值為order by "111", 如果傳入的值是id,則解析成的sql為order by "id".
  
2. $將傳入的資料直接顯示產(chǎn)生在sql中。如:order by $user_id$,如果傳入的值是111,那麼解析成sql時(shí)的值為order by user_id,? 如果傳入的值是id,則解析成的sql為order by id.
  
3. #方式能夠很大程度防止sql注入。
  
4.$方式無(wú)法防止Sql注入。


5.$方式一般用於傳入資料庫(kù)對(duì)象,例如傳入表名.
  
6.一般能用#的就別用$.

防止Sql注入

注意:聲明語(yǔ)句不要寫(xiě)成selectse from t_stu where s_name like '%$name$%',這樣極易受到注入攻擊。

”${xx??x}”這樣格式的參數(shù)會(huì)直接參與sql編譯,因此無(wú)法避免注入攻擊。但涉及動(dòng)態(tài)表名和列名時(shí),只能使用「${xxx}」這樣的參數(shù)格式。

在編寫(xiě)mybatis的映射語(yǔ)句時(shí),盡量採(cǎi)用「#{xxx}」這樣的格式。若不得不使用「${xxx}」這樣的參數(shù),要手工地做好過(guò)濾工作,以防止sql注入攻擊。

例子

<sql id="condition_where"> 
  <isNotEmpty property="companyName" prepend=" and "> 
    t1.company_name like #companyName# 
  </isNotEmpty> 
</sql>

? ?


java程式碼和你原來(lái)的差不多,其實(shí)沒(méi)什麼不好,你要覺(jué)得麻煩把

以上就是小編為大家?guī)?lái)的淺談mybatis中的#和$的區(qū)別以及防止sql注入的方法全部?jī)?nèi)容了,希望大家多多支持PHP中文網(wǎng)~

更多淺談mybatis中的#和$的區(qū)別以及防止sql注入的方法相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
詳解MyBatis動(dòng)態(tài)SQL標(biāo)籤中的Set標(biāo)籤功能 詳解MyBatis動(dòng)態(tài)SQL標(biāo)籤中的Set標(biāo)籤功能 Feb 26, 2024 pm 07:48 PM

MyBatis動(dòng)態(tài)SQL標(biāo)籤解讀:Set標(biāo)籤用法詳解MyBatis是一個(gè)優(yōu)秀的持久層框架,它提供了豐富的動(dòng)態(tài)SQL標(biāo)籤,可以靈活地建構(gòu)資料庫(kù)操作語(yǔ)句。其中,Set標(biāo)籤是用來(lái)產(chǎn)生UPDATE語(yǔ)句中SET子句的標(biāo)籤,在更新作業(yè)中非常常用。本文將詳細(xì)解讀MyBatis中Set標(biāo)籤的用法,以及透過(guò)具體的程式碼範(fàn)例來(lái)示範(fàn)其功能。什麼是Set標(biāo)籤Set標(biāo)籤用於MyBati

MyBatis快取機(jī)制詳解:一文讀懂快取儲(chǔ)存原理 MyBatis快取機(jī)制詳解:一文讀懂快取儲(chǔ)存原理 Feb 23, 2024 pm 04:09 PM

MyBatis快取機(jī)制詳解:一文讀懂快取儲(chǔ)存原理引言在使用MyBatis進(jìn)行資料庫(kù)存取時(shí),快取是一個(gè)非常重要的機(jī)制,能夠有效減少對(duì)資料庫(kù)的訪問(wèn),提高系統(tǒng)效能。本文將詳細(xì)介紹MyBatis的快取機(jī)制,包括快取的分類、儲(chǔ)存原理和具體的程式碼範(fàn)例。一、快取的分類MyBatis的快取主要分為一級(jí)快取和二級(jí)快取兩種。一級(jí)緩存一級(jí)緩存是SqlSession級(jí)別的緩存,當(dāng)在

MyBatis Generator配置參數(shù)解讀及最佳實(shí)踐 MyBatis Generator配置參數(shù)解讀及最佳實(shí)踐 Feb 23, 2024 am 09:51 AM

MyBatisGenerator是MyBatis官方提供的程式碼產(chǎn)生工具,可以幫助開(kāi)發(fā)人員快速產(chǎn)生符合資料庫(kù)表結(jié)構(gòu)的JavaBean、Mapper介面以及XML映射檔。在使用MyBatisGenerator進(jìn)行程式碼產(chǎn)生的過(guò)程中,配置參數(shù)的設(shè)定是至關(guān)重要的。本文將從配置參數(shù)的角度出發(fā),深入探討MyBatisGenerator的

深入理解MyBatis中的批次Insert實(shí)作原理 深入理解MyBatis中的批次Insert實(shí)作原理 Feb 21, 2024 pm 04:42 PM

MyBatis是一款流行的Java持久層框架,廣泛應(yīng)用於各種Java專案。其中,批次插入是常見(jiàn)的操作,可以有效提升資料庫(kù)操作的效能。本文將深入探討MyBatis中批量的Insert實(shí)作原理,並結(jié)合具體的程式碼範(fàn)例進(jìn)行詳細(xì)解析。 MyBatis中的批次Insert在MyBatis中,批量Insert操作通常使用動(dòng)態(tài)SQL來(lái)實(shí)作。透過(guò)建構(gòu)一條包含多個(gè)插入值的S

MyBatis中批量Insert語(yǔ)句的最佳化技巧分享 MyBatis中批量Insert語(yǔ)句的最佳化技巧分享 Feb 22, 2024 pm 04:51 PM

MyBatis是一個(gè)流行的Java持久層框架,透過(guò)XML或註解的方式實(shí)現(xiàn)SQL與Java方法的映射,提供了許多方便的操作資料庫(kù)的功能。在實(shí)際開(kāi)發(fā)中,有時(shí)需要批量插入大量資料到資料庫(kù)中,因此,如何優(yōu)化MyBatis中批量Insert語(yǔ)句成為一個(gè)重要的問(wèn)題。本文將分享一些優(yōu)化技巧,並提供具體的程式碼範(fàn)例。 1.使用BatchExecu

安全優(yōu)先:MyBatis 中防範(fàn) SQL 注入的最佳實(shí)踐 安全優(yōu)先:MyBatis 中防範(fàn) SQL 注入的最佳實(shí)踐 Feb 22, 2024 pm 12:51 PM

隨著網(wǎng)路技術(shù)的不斷發(fā)展,資料庫(kù)攻擊也變得越來(lái)越普遍。 SQL注入是其中常見(jiàn)的攻擊方式,攻擊者透過(guò)在輸入框中輸入惡意SQL語(yǔ)句來(lái)執(zhí)行非法操作,造成資料外洩、竄改甚至刪除。為了防範(fàn)SQL注入攻擊,開(kāi)發(fā)人員在編寫(xiě)程式碼時(shí)要特別注意,而在使用MyBatis這樣的ORM框架時(shí),更是需要遵循一些最佳實(shí)踐來(lái)確保系統(tǒng)的安全性。 1.參數(shù)化查詢參數(shù)化查詢是防

MyBatis批次刪除語(yǔ)句的使用方法詳解 MyBatis批次刪除語(yǔ)句的使用方法詳解 Feb 20, 2024 am 08:31 AM

MyBatis批量刪除語(yǔ)句的使用方法詳解,需要具體程式碼範(fàn)例引言:MyBatis是一款優(yōu)秀的持久層框架,提供了豐富的SQL操作功能。在實(shí)際專案開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要大量刪除資料的情況。本文將詳細(xì)介紹MyBatis批量刪除語(yǔ)句的使用方法,並附上具體的程式碼範(fàn)例。使用場(chǎng)景:在資料庫(kù)中刪除大量資料時(shí),逐條執(zhí)行刪除語(yǔ)句效率低。此時(shí),可以使用MyBatis的批次刪除功能

深入了解MyBatis動(dòng)態(tài)SQL標(biāo)籤:Trim標(biāo)籤功能解析 深入了解MyBatis動(dòng)態(tài)SQL標(biāo)籤:Trim標(biāo)籤功能解析 Feb 21, 2024 pm 09:42 PM

MyBatis是一個(gè)輕量級(jí)的Java持久層框架,它提供了許多方便的SQL語(yǔ)句拼接功能,其中的動(dòng)態(tài)SQL標(biāo)籤是其強(qiáng)大之處之一。在MyBatis中,Trim標(biāo)籤是一種很常用的標(biāo)籤,用來(lái)動(dòng)態(tài)地拼接SQL語(yǔ)句。在本文中,我們將深入了解MyBatis中的Trim標(biāo)籤的功能,並提供一些具體的程式碼範(fàn)例。 1.Trim標(biāo)籤簡(jiǎn)介在MyBatis中,Trim標(biāo)籤用於去除生成的S

See all articles