国产探花免费观看_亚洲丰满少妇自慰呻吟_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 #+'%     
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永兴县| 临清市| 黄冈市| 迁安市| 天门市| 吉隆县| 文安县| 罗平县| 临洮县| 两当县| 通州区| 长寿区| 松滋市| 华宁县| 东乡县| 林芝县| 宣化县| 宜春市| 喜德县| 板桥市| 奈曼旗| 瑞昌市| 长丰县| 修武县| 乳山市| 元谋县| 类乌齐县| 陆良县| 那曲县| 肥城市| 建平县| 开江县| 怀宁县| 察隅县| 虹口区| 阳原县| 天峻县| 广水市| 屯留县| 顺昌县| 治县。|