代码之家  ›  专栏  ›  技术社区  ›  Vivian River

如何在classic ASP中运行参数化SQL查询?安全吗?

  •  6
  • Vivian River  · 技术社区  · 14 年前

    我有两个问题。

    首先,在.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注入。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Ash    5 年前

    有些ADODB对象基本上做相同的事情。 ADODB.命令对象等效于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对象的帮助。