2014-02-05 31 views
0

我使用一個變量在ASP內插,爲了這個,我有一個vairable:可變插在ASP,ADO

cid=Request.Form("customerID") 

然後,

rs.open "SELECT * FROM customers WHERE customerID='" & cid & "'",conn 

上述聲明不起作用。
而這個工程:

rs.open "SELECT * FROM customers WHERE customerID=1",conn 

能有人幫我嗎?

+1

這應該如果工作'cid'是'1',你驗證了嗎?這是易受sql注入。它的失效模式是什麼? –

+0

一個簡單的方法來保護該注射攻擊片段將是'cid = Cint(Request.Form(「customerID」))' - 假設customerID是一個數字 – John

回答

1

你的代碼是廣泛開放的SQL注入!

閱讀有關參數化查詢。

在你的第一個SQL你有單引號('),這是不好的,如果CID是數字

+0

謝謝@ulluoink :),刪除(')爲我工作。非常感謝:) – user3275206

+0

@ user3275​​206我不建議您在生產環境中使用此方法,而是使用'ADODB.Command'來代替構建參數化查詢。 – Lankymart