我将不得不处理经典ASP VBScript中的一些SQL代码。
我有两个问题。
首先,在.net中,我习惯于使用System.Data.SqlClient命名空间对象执行查询。例如:
Dim conn as New SqlConnection("Data Source=MyServer;uid=myUid;pwd=myPwd;Initial Catalog=myDataBase;"
Dim cmd as New SqlCommand("Select fname From myTable where uid=@uid;", conn)
cmd.Parameters.add(New SqlParameter("@uid",100323)
conn.open()
Response.Write(cmd.ExecuteScalar())
conn.Close()
有人告诉我,使用这样的参数化查询可以使我的查询免受SQL注入攻击。
我想知道用VBScript在经典ASP中进行此类查询的等效代码是什么,以及必须使用哪些类似的安全预防措施来防止SQL注入。
有些ADODB对象的作用基本相同。ADODB.Command对象等效于SqlCommand。从那里开始,它基本上与.NET一样。
set cmd = Server.CreateOject("ADODB.Command")
cmd.CommandText = "select From Table where ID = @id")
set param = cmd.CreateParameter("@id", adInteger, adInput,0,0)
我经常使用w3schools获得有关ADO对象的帮助。