插入带有SQL注入安全参数的DB?

Ter*_*iux 10 .net c# sql asp.net sql-injection

我一直在阅读有关SQL注入的内容,我想确保我的代码可以说是"安全",我打算使用RegExp验证器来检查用户输入,但是这里的另一个帖子建议只使用参数化查询,我我正在使用它们,但我想确保我的代码是安全的,是吗?

        using ( SqlConnection dataConnection = new SqlConnection(myConnectionString) )
        {
            using ( SqlCommand dataCommand = dataConnection.CreateCommand() )
            {
                dataCommand.CommandText = "INSERT INTO Lines (Name, CreationTime) " +
                    "VALUES (@LineName, @CurrentDateTime)";

                dataCommand.Parameters.AddWithValue("@LineName", TextBox2.Text);
                dataCommand.Parameters.AddWithValue("@CurrentDateTime", DateTime.Now.ToString());
                dataConnection.Open();
                //do other DB stuff
Run Code Online (Sandbox Code Playgroud)

我打破了最后一部分以使帖子更短,其余部分只是尝试捕获异常并关闭数据库连接以及提供用户关于插入成功的反馈.

kd7*_*kd7 11

您的代码很好,它可以防止注入,因为值是作为参数而不是字符串文字传递的.但是,如果您自己编写此类数据访问,是否考虑过创建SqlParameter对象并显式设置类型,大小等,并将参数添加到命令中?AddWithValue可以正常工作,但SQL Server必须确定类型,一点点,但不必要的开销.