parameters参数化SQL语句放注入
public int AdminLogin(string AdminName, string AdminPwa)
{
string ConnectionString = ConfigurationManager.ConnectionStrings["DaDingDB"].ConnectionString;
SqlConnection conn = new SqlConnection(ConnectionString);
StringBuilder strSql = new StringBuilder();
strSql.Append("select va_AdminID from ");
strSql.Append(" AdminInformation ");
strSql.Append("where va_AdminAccount=@AdminName");
strSql.Append(" and ");
strSql.Append(" va_AdminPwa=@AdminPwa ");
SqlParameter[] parameters = {
new SqlParameter("@AdminName", SqlDbType.NVarChar,50),
new SqlParameter("@AdminPwa", SqlDbType.NVarChar,50)
};
parameters[0].Value = AdminName;
parameters[1].Value = AdminPwa;
conn.Open();
SqlCommand comm = new SqlCommand(strSql.ToString(), conn);
int rdr =Convert.ToInt32(comm.ExecuteScalar());
return rdr;
}
这样写还少啦什么吗?运行会报错
{
string ConnectionString = ConfigurationManager.ConnectionStrings["DaDingDB"].ConnectionString;
SqlConnection conn = new SqlConnection(ConnectionString);
StringBuilder strSql = new StringBuilder();
strSql.Append("select va_AdminID from ");
strSql.Append(" AdminInformation ");
strSql.Append("where va_AdminAccount=@AdminName");
strSql.Append(" and ");
strSql.Append(" va_AdminPwa=@AdminPwa ");
SqlParameter[] parameters = {
new SqlParameter("@AdminName", SqlDbType.NVarChar,50),
new SqlParameter("@AdminPwa", SqlDbType.NVarChar,50)
};
parameters[0].Value = AdminName;
parameters[1].Value = AdminPwa;
conn.Open();
SqlCommand comm = new SqlCommand(strSql.ToString(), conn);
int rdr =Convert.ToInt32(comm.ExecuteScalar());
return rdr;
}
这样写还少啦什么吗?运行会报错
...全文
相关推荐
C#参数化查询,避免SQL注入
为了解决这个问题,C#提供了一种有效的方法——参数化查询,这是一种安全且高效的方式来执行数据库操作,能有效地防止SQL注入攻击。参数化查询的核心思想是将SQL语句和实际的值分离,通过占位符(如`?
SQL参数化(防止SQL注入)
在ASP.NET开发中,使用SQL参数化可以有效地防止SQL注入攻击。SQL参数化是指在执行SQL语句时,使用参数代替原始的SQL语句,从而防止恶意的SQL语句注入。
SQL中in参数化的用法
但是在实际开发中,我们不可避免地需要处理大量的数据,传统的方法是直接将参数拼接到 SQL 语句中执行查询。但是,这种方法存在严重的安全隐患,容易引发 SQL 注入攻击。
SQL参数化-防SQL注入
参数化是指在SQL语句中使用参数,而不是直接使用用户输入的数据。参数化的优点是可以防止SQL注入,因为参数化的SQL语句是在编译时被预编译的,而不是在运行时被编译的,这样可以防止恶意代码的注入。
防SQL注入 生成参数化的通用分页查询语句
这不仅可以防止SQL注入,还能提高查询性能,因为数据库可以预先编译和重用参数化的查询计划。总的来说,避免在存储过程中进行SQL语句拼接,而是使用参数化查询来构建分页语句,是防止SQL注入的最佳实践。


