2014-01-16 127 views
0

對特殊字符驗證URL是否阻止sql注入?像這樣的東西:通過url阻止sql注入

validateRequest(req.getUri()); 

其中我驗證特殊字符。

+1

永遠不會永遠不會嘗試編寫自己的「特殊」字符自定義驗證,以防止SQL注入攻擊。 – Kevin

+2

SQL注入不會發生在URL中。它發生在數據庫交互中。而且它與「特殊字符」無關,並且與將用戶輸入視爲* data *而不是*可執行代碼*相關。 – David

+0

謝謝凱文:) 大衛我知道,但我的意思是他的情況下,他寫了一個完整的SQL語句內的url嗎?\ – user3204111

回答

5

只要您使用parametrized queries針對數據庫,您將從SQL注入中保存。因此,您應該通過命令參數將數據發送到數據庫服務器,而不是驗證URL中的字符。

+0

我問他是否寫在網址中的完整的SQL語句不是通常的攻擊添加例如: 或1 = 1 – user3204111

+0

@ user3204111,url的輸入將如何傳送到數據庫服務器?它不能直接進行,必須有命令對象/代碼從URL中取值,然後將其發送到數據庫。您不能在URL中編寫SQL查詢,並期望它自動進入數據庫,必須涉及某種類型的命令對象。 – Habib