搜课云网 > 北大青鸟 > 资讯总汇 > 防止sql注入的方法:使用类型安全的 SQL 参数

防止sql注入的方法:使用类型安全的 SQL 参数

机构:北大青鸟 时间:2015-12-08 11:22:50 点击:675

    SQL Server 中的 Parameters 集合提供了类型检查和长度验证。如果使用 Parameters 集合,则输入将被视为文字值而不是可执行代码。使用 Parameters 集合的另一个好处是可以强制执行类型和长度检查。范围以外的值将触发异常。以下代码段显示了如何使用 Parameters 集合:

  1 SqlDataAdapter myCommand = new SqlDataAdapter("AuthorLogin", conn);

  2 myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;

  3 SqlParameter parm = myCommand.SelectCommand.Parameters.Add("@au_id",

  4 SqlDbType.VarChar, 11);

  5 parm.Value = Login.Text;

  在此示例中,@au_id 参数被视为文字值而不是可执行代码。将对此值进行类型和长度检查。如果 @au_id 值不符合指定的类型和长度约束,则将引发异常。

  存储过程如果使用未筛选的输入,则可能容易受 SQL Injection 攻击。例如,以下代码容易受到攻击:

  SqlDataAdapter myCommand = new SqlDataAdapter("LoginStoredProcedure '" + Login.Text + "'", conn);

  如果使用存储过程,则应使用参数作为存储过程的输入。

  更多资讯:武汉软件工程师培训学校

师资介绍