我有這個其中工程:如何在傳統的asp中預防SQL注入做準備語句?
sqlString = "SELECT * FROM employees WHERE lastname = '" & last_name & "'"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = dbConn
cmd.CommandText = sqlString
cmd.Prepared = True
Set recs = cmd.Execute
我的問題是,上面的sqlString
動態部分是準備好的語句命令。我不認爲我上面有什麼保護我。
在執行準備好的語句之前,我不必修復此sqlString嗎?讀這讓我想到的是:How can prepared statements protect from SQL injection attacks?:
「雖然在事先準備好的聲明的情況下,我們不會改變我們的計劃,它會保持原樣 這點
我們發送程序到服務器第一
$db->prepare("SELECT * FROM users where id=?");
其中該數據由一些所謂的「佔位符」 然後我們分別發送這些數據變量取代:
$db->execute($data);
所以,它不能改變我們的程序並造成任何傷害。 很簡單 - 是不是「
但我不知道如何讓我的查詢正確的我也不知道他從prepare
如何到達$data
希望爲指導,感謝
我會試試。謝謝。什麼是未定義的,202,1,50,? – johnny 2011-12-16 19:19:25