java防sql注入方法小結
阿新 • • 發佈:2019-02-09
本文對java操作資料庫的一項重點內容——防sql注入進行說明。對現有方法進行了簡單優劣討論與總結,供大家參考討論。
重點:不要將使用者輸入內容,在未經檢查的情況下,直接拼接為sql語句進行資料庫訪問操作。
防sql注入方法如下:
過濾輸入
對輸入內容進行充分過濾,可以利用正則表示式進行匹配。
例如:“(?:’)|(?:–)|(/\*(?:.|[\n\r])?\/)|(and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare)”
優點:可快速完成對存在sql注入隱患的程式改造;
缺點預編譯語句
採用預編譯語句集(PreparedStatement),它內建了處理SQL注入的能力,只要使用它的setXXX方法傳值即可。
優點:程式碼的可讀性和可維護性;PreparedStatement盡最大可能提高效能;最重要的一點是極大地提高了安全性。
缺點:對每一條資料庫操作語句都需要進行處理,程式碼開發會比較麻煩一些。使用框架
使用框架標準的資料庫訪問類,如:Hibernate框架的Criteria、HibernateDaoSupport等類,並且可以使用反射技術,使得程式碼通用性比較高。
優點
缺點:需要對框架進行學習,遵循框架規則進行使用。
==================================
==疑問?幫助?批評?歡迎評論 | QQ:593159978==
==================================