2013-06-19 110 views
-1

我們可以使用過濾器來避免通過url傳入的sql注入嗎?有沒有開源的過濾器? 的是,有這樣的過濾器與彈簧以及..開源網頁過濾器

請回復我

+0

還記得PHP中的'magicquotes'嗎?他們試圖做這樣的事情,這是主要批評的目標,現在已被棄用;)。如何處理請求預處理不是一種方法。 –

回答

2

你需要真正逃脫自帶通過JDBC使用prepareStatement(),而不是採用某種形式的「過濾器」的網址查詢。如果您使用帶有setParameter()的ORM實現,則可以通過這種方式解決問題。

2

SQL注入在持久層(在那裏你可以使用Hibernate,JPA,iBatis等)處理準備好的語句被寫入。確保你使用Prepared statement.

+0

非常感謝您的回答 – user2056989

0

你真的需要一個多管齊下的方法。使用準備好的語句或綁定變量很重要,但有些人可能會犯錯,並通過濫用查詢。您還應該配置數據庫,以便人員和自動化用戶只擁有他們所需的權限。

您的典型用戶不需要CREATE TABLEDROP TABLE權限,因此不要將這些權限交給他。像US_STATES這樣的查找表應該是隻讀的;除非發生災難,否則不要給這些人提供INSERTUPDATEDELETE。如果斯普林菲爾德,IL在地震中被摧毀並且國會大廈被移動,那麼臨時給予dba UPDATE特權。

也考慮爲用戶必須執行的任務編寫存儲過程。您可以爲這些程序提供自己的權限,併爲用戶提供訪問權限。