原文地址:http://blog.csdn.net/scorpio3k/article/details/7610973 對於ibaits參數引用可以使用#和$兩種寫法,其中#寫法會採用預編譯方式,將轉義交給了資料庫,不會出現註入問題;如果採用$寫法,則相當於拼接字元串,會出現註入問題。 例如,如果屬... ...
原文地址:http://blog.csdn.net/scorpio3k/article/details/7610973
對於ibaits參數引用可以使用#和$兩種寫法,其中#寫法會採用預編譯方式,將轉義交給了資料庫,不會出現註入問題;如果採用$寫法,則相當於拼接字元串,會出現註入問題。
例如,如果屬性值為“' or '1'='1 ”,採用#寫法沒有問題,採用$寫法就會有問題。
對於like語句,難免要使用$寫法,
1. 對於Oracle可以通過'%'||'#param#'||'%'避免;
2. 對於MySQL可以通過CONCAT('%',#param#,'%')避免;
3. MSSQL中通過'%'+#param#+'% 。
mysql: 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 #+'%