我将不得不处理经典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注入。
答案 0 :(得分:6)
有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对象的帮助。