2011-01-09 99 views
1

我如何測試以查看SQL注入是否在我的網站上的文本框中不起作用?如何測試SQL注入是否被阻止?

+0

你必須更具體。在將文本輸入數據庫之前,如何轉義文本? – Savetheinternet 2011-01-09 17:57:23

+0

你能顯示一些內部代碼嗎?即如何使用文本框?沒有通用的方法,它取決於你正在使用的查詢 – 2011-01-09 17:57:44

回答

1

您通常必須考慮來自輸入字段的數據將如何達到實際選擇。一旦你知道你試圖看看你能在這個字段中放置什麼類型的文本來終止一個sql語句並開始另一個。

例如,如果你在代碼中做了這樣的事情:'select * from table where id = ' . $_GET['id'],我給你打電話script.php?id=0%20OR%20true; drop table table;我可以執行兩條語句。

但一般來說,你應該避免通過連接構造選擇。另一位響應者建議使用有界參數更好。

8

使用一種機制,保證它不可能通過設計,比如綁定參數。那麼不需要測試(對於SQL注入阻力)。

換句話說:不要依賴專門的轉義代碼;很可能你不會100%正確。

0

通常的檢查是在字段中只添加一次所有特殊符號,看看是否有SQL錯誤。如果沒有錯誤並且記錄正確插入到數據庫中 - 那很好。

1

您可以使用此列表來創建對你的代碼的攻擊:http://ha.ckers.org/sqlinjection/

您也可以組裝的「危險」的字符和字符組合的列表,並從它創建(僞)-random輸入值。