hibernate使用中防止sql注入的幾種方案
hibernate是乙個開放源**的物件關係對映框架,它對jdbc進行了非常輕量級的物件封裝,使得j**a程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。
在獲取便利操作的同時,sql的注入問題也值得我們的密切注意,下面就來談談幾點如何避免sql注入:
1.對引數名稱進行繫結:
query query=session.createquery(hql);
query.setstring(「name程式設計客棧」,name);
2.對引數位置進行邦定:
qumrakzydzjery query=session.createquery(hql);
query.setstring(0,name1);
query.setstring(1,name2);
...3.setparameter()方法:
query query=session.createquery(hql);
query.setparameter(「name」,name,hibernate.string);
4.setproperties()方法:
entity entity=new entity();
entity.setxx(「xx」);
entity.setyy(100);
query query=session.createquery(「from entity c where c.xx=:xx and c.yy=:yy 」);程式設計客棧
query.setproperties(entity);
5.hql拼接方法,這種方式是最常用,而且容易忽視且容易被注入的,通常做法就是對引數的特殊字元進行過濾,推薦大家使用 spring工具包的stringescapeutils.escapesql()方法對引數進行過濾:
public static void main(string args)
輸出結果:''
本文標題: hibernate使用中防止sql注入的幾種方案
本文位址:
Hibernate防止SQL注入的方法
如果在查詢欄位中輸入單引號 則會報錯,這是因為輸入的單引號和其他的sql組合在一起程式設計了乙個新的sql,實際上這就是sql注入漏洞,後來我在前台和後台都對輸入的字元進行了判斷。永遠也不要寫這樣的 string querystring from item i where i.description...
hibernate中lazy的使用
lazy 延遲載入 lazy 的有效期 只有在 session 開啟的時候才有效 session 關閉後lazy 就沒效了。lazy 策略可以用在 標籤上 可以取值true false 標籤上,可以取值true false,這個特性需要類增強 等集合上,可以取值為true false extra 等...
hibernate中lazy的使用
lazy,延遲載入 lazy的有效期 只有在session開啟的時候才有效 session關閉後lazy就沒效了。lazy策略可以用在 標籤上 可以取值true false 標籤上,可以取值true false,這個特性需要類增強 等集合上,可以取值為true false extra 等標籤上,可以...