2013-07-06 79 views
-1

我有此查詢在SQL注入問題:轉義字符,SQL注入

"SELECT * FROM user_data WHERE keywords LIKE \%" + querystring + "\% AND owner=’" + owner + "’;" 

其中查詢字符串是直接由用戶輸入和所有者被自動設置。 語法應該是正確的,但我不明白\%在這個位置上做了什麼......查詢不正確不是嗎?它應該導致SQL注入問題利用查詢的問題,但這個「\%」真的擾亂了我。

回答

0

假設查詢字符串有

'; SELECT * FROM SYS.DATABASES; -- 

你的東西它可能如果黑客使用的捲曲工具嘗試它會怎麼樣? 您的語法將帶來第一個查詢和所有數據庫列表中的所有內容,實際上這是一個非常簡單的例子。在某些環境中,即使防火牆配置良好,這種注入也可以讓黑客進入整個服務器甚至是域。

+0

我的意思是在LIKE之後沒有寫點\%,這是不正確的,所以即使我們寫了你寫的東西,我們得到一個錯誤,因爲這個\%沒有正確放置不是嗎? – morg

+0

你是對的,它會失敗的SQL解析。爲了通過解析,它需要單引號 –