實際運行SQL命令的SQL注入是一回事。但是,注入實際上不運行有害查詢但可能會告訴您有關數據庫的有價值的數據的那些數據是否被視爲SQL注入?或者它只是用來構建有效的SQL注入?報告錯誤代碼考慮SQL注入?
一個例子可以是
set rs = conn.execute("select headline from pressReleases
where categoryID = " & cdbl(request("id")))
傳遞這種可能不會變成一個數字值的字符串會導致
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'cdbl'
它會告訴你,有問題的列只接受數字數據因此可能是整型或類似的類型。
我似乎在很多討論SQL注入的頁面中發現了這一點,但如果這本身被認爲是SQL注入,那麼並沒有真正得到答案。我的問題的原因是我有一個報告SQL注入漏洞的掃描工具,並報告了VBScript運行時錯誤「800a000d」作爲發現的原因。
僅僅因爲你不一定知道如何構建惡意攻擊媒介,並不意味着沒有其他人這樣做。在sql中使用綁定參數來消除任何注入的可能性。 – Cheekysoft 2010-06-09 15:36:50