sql 登录注入

DataTable dt= SqlHelper.ExecuteDataTable(System.Data.CommandType.Text, String.Format("select * from Automation_User where userName='{0}' and password='{1}'", userName, password), null);

如果是拼接式sql登录的话很容易进行sql注入

'or'1'='1

 

所以登录的sql尽量写成参数化,

using (SqlConnection cnn = new SqlConnection(con))
{
using (SqlCommand cmd = cnn.CreateCommand())
{
try
{
cmd.CommandText = "select * from User where username=@username and password=@password";
cmd.Parameters.Add(new SqlParameter("@username", username));
cmd.Parameters.Add(new SqlParameter("@password", password));
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
cnn.Close(); //记得要加上 关闭
if (ds.Tables[0].Rows.Count > 0)
{
type = Convert.ToInt32(ds.Tables[0].Rows[0]["type"]);
}
}
catch (Exception ex)
{
// type = -2;
logInstance.Info(string.Format("登录出现异常,异常信息为:{0}",ex.Message));
}
}
}

//参数化时,单引号和双引号都会被转义

转载于:https://www.cnblogs.com/yangjinwang/p/4647948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值