参数化查询对SQL注入有何帮助?

参数化查询对SQL注入有何帮助?

在查询1和2中,TextBox中的文本被插入到数据库中。这里参数化查询的意义是什么?

  1. 过路txtTagNumber作为查询参数

    SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars " +"VALUES(@TagNbr);" , conn);
    cmd.Parameters.Add("@TagNbr", SqlDbType.Int);
    cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
  2. 转换txtTagNumber在构造查询之前转换为整数。

    int tagnumber = txtTagNumber.Text.ToInt16(); /* EDITED */INSERT into Cars values(tagnumber.Text);
     /* then is it the same? */

此外,在这里,我将使用正则表达式验证来停止非法字符的插入。


明月笑刀无情
浏览 539回答 3
3回答

互换的青春

参数化查询在运行SQL查询之前对参数进行适当的替换。它完全消除了“脏”输入更改查询含义的可能性。也就是说,如果输入包含SQL,它就不能成为执行内容的一部分,因为SQL从未注入到结果语句中。
打开App,查看更多内容
随时随地看视频慕课网APP