C# winform 防止sql注入
stringusername=txtUserName.Text.ToString();stringpwd=txtPwd.Text.ToString();stringsql...
string username = txtUserName.Text.ToString();
string pwd = txtPwd.Text.ToString();
string sql = "select count(*) from zhuce where username='" + username + "' and pwd='" + pwd + "'and type = '" + power.Text + "'";
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
各位大虾上面这个代码怎么能够防止SQL注入?如果是其他代码呢?谢谢给位了,说得好的加分,谢谢给位了
4291727的我就是不知道什么是参数传值
hetongyang的怎么做一个存储过程?string sql=“存储过程名字”;这句应该怎么写,我是初学者,各位见谅
摆渡浮桥的 输入后显示 上下文不存在varchar ,Item缺少USING引用并且找不到可用引用 展开
string pwd = txtPwd.Text.ToString();
string sql = "select count(*) from zhuce where username='" + username + "' and pwd='" + pwd + "'and type = '" + power.Text + "'";
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
各位大虾上面这个代码怎么能够防止SQL注入?如果是其他代码呢?谢谢给位了,说得好的加分,谢谢给位了
4291727的我就是不知道什么是参数传值
hetongyang的怎么做一个存储过程?string sql=“存储过程名字”;这句应该怎么写,我是初学者,各位见谅
摆渡浮桥的 输入后显示 上下文不存在varchar ,Item缺少USING引用并且找不到可用引用 展开
4个回答
展开全部
唯一的解决办法是字符串过虑, 就算你写了存储过程,其内部原理他基本上是字符串的合并。根本无法从根本上解决SQL注入
唯一行之有效的办就只有一个 那就是 检查字符串里是否有单引号 如果有 把 字符串里的 单引号 全去掉. 如果 值类开 就是检查 or SQL 注入的精髓就是合理使用 单引号和 or 改变 sql 语意 只要你把 字符串中的 这两个东西 干掉就安全了 不过 字符过滤很费时间 尤其是 论坛一类的 需要提交文章的系统
唯一行之有效的办就只有一个 那就是 检查字符串里是否有单引号 如果有 把 字符串里的 单引号 全去掉. 如果 值类开 就是检查 or SQL 注入的精髓就是合理使用 单引号和 or 改变 sql 语意 只要你把 字符串中的 这两个东西 干掉就安全了 不过 字符过滤很费时间 尤其是 论坛一类的 需要提交文章的系统
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
防止SQL注入,就是你写一个存储过程
在里面调用
不要将SQL语句写在代码里
string sql=“存储过程名字”;
cmd.CommandType = CommandType.StoredProcedure;
在里面调用
不要将SQL语句写在代码里
string sql=“存储过程名字”;
cmd.CommandType = CommandType.StoredProcedure;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过参数传递:
string sql = "select count(*) from zhuce where username=@username and pwd=@pwd and type = @type";
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@username",SqlDbType.VarChar,30);
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,30);
cmd.Parameters.Add("@type",SqlDbType.VarChar,10);
cmd.Parameters["@username"].Value = username;
cmd.Parameters["@pwd"].Value = pwd;
cmd.Parameters["@type"].Value = power.Text;
int count = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
string sql = "select count(*) from zhuce where username=@username and pwd=@pwd and type = @type";
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@username",SqlDbType.VarChar,30);
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,30);
cmd.Parameters.Add("@type",SqlDbType.VarChar,10);
cmd.Parameters["@username"].Value = username;
cmd.Parameters["@pwd"].Value = pwd;
cmd.Parameters["@type"].Value = power.Text;
int count = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询