国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ibatis sql注入

2019-11-08 20:55:02
字體:
來源:轉載
供稿:網友

轉自:http://blog.csdn.net/scorpio3k/article/details/7610973

對于ibaits參數引用可以使用#和$兩種寫法,其中#寫法會采用預編譯方式,將轉義交給了數據庫,不會出現注入問題;如果采用$寫法,則相當于拼接字符串,會出現注入問題。

例如:1)#xxx# 代表xxx是屬性值、map里面的key或者是你的pojo對象里面的屬性, ibatis會自動在它的外面加上引號,表現在sql語句是這樣的where xxx = 'xxx' ;

2)$xxx$ 則是把xxx作為字符串拼接到你的sql語句中,如order by $xxx$ , ibatis 就會把他翻譯成order by xxx

注入問題

例如,如果屬性值為“' or '1'='1 ”,采用#寫法沒有問題,采用$寫法就會有問題。

對于like語句,難免要使用$寫法,

 1. 對于Oracle可以通過'%'||'#param#'||'%'避免;

 2. 對于MySQL可以通過CONCAT('%',#param#,'%')避免;

 3. MSSQL中通過'%'+#param#+'% 。 

如下3種SQL語句:

[html] view plain copymysql: select * from t_user where name like concat('%',#name #,'%')       oracle: select * from t_user where name like '%'||#name #||'%'      SQL Server:select * from t_user where name like '%'+#name #+'%     
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垫江县| 漳平市| 宣恩县| 文昌市| 治多县| 澄城县| 海丰县| 五常市| 广南县| 合山市| 乳源| 日照市| 元阳县| 枣强县| 五大连池市| 自治县| 河西区| 塔河县| 勃利县| 页游| 青河县| 延长县| 汤原县| 来宾市| 舒城县| 左权县| 鲁甸县| 清流县| 墨竹工卡县| 同心县| 万荣县| 东丽区| 元朗区| 北川| 左权县| 金川县| 泰来县| 理塘县| 资阳市| 类乌齐县| 民县|