我如何在经典ASP中运行参数化SQL查询?而且安全吗?

问题描述 投票:6回答:1

我将不得不处理经典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注入。

asp-classic vbscript sql-injection
1个回答
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对象的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.