ASP.NET C# SQL参数化
刚学ASP.NET想问问大家,小弟做了登录代码后,总是可以用SQL注入,请假怎么改代码,请详细点,最好给小弟一段代码参考一下,小弟很菜,谢谢...
刚学ASP.NET想问问大家,小弟做了登录代码后,总是可以用SQL注入,请假怎么改代码,请详细点,最好给小弟一段代码参考一下,小弟很菜,谢谢
展开
5个回答
展开全部
代码没有,倒是可以给你三个建议:
1、使用存储过程,这样就参数化了,可以防止sql语句的非法注入
2、写一个函数,把插入语句的sql中的 ' 字符替换为空:
public static string Filtered(string str)
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
3.登录的时候将文本框内的内容加密输入数据库。。。
1、使用存储过程,这样就参数化了,可以防止sql语句的非法注入
2、写一个函数,把插入语句的sql中的 ' 字符替换为空:
public static string Filtered(string str)
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
3.登录的时候将文本框内的内容加密输入数据库。。。
展开全部
.net ?? sql参数化 百度一下 很简单 这种要养成习惯
我怎么感觉 楼下的追问 应该是追问给我的呢....
算了 免费奉送一段
public JS_PlanCash getOneByUserID(int id,string year)
{
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@JS_Year",SqlDbType.VarChar),
new SqlParameter("@JS_CreateID" , SqlDbType.Int)
};
parms[0].Value = year;
parms[1].Value = id;
return djp.getOne(" and JS_Year = @JS_Year and JS_CreateID = @JS_CreateID", parms);
}
我怎么感觉 楼下的追问 应该是追问给我的呢....
算了 免费奉送一段
public JS_PlanCash getOneByUserID(int id,string year)
{
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@JS_Year",SqlDbType.VarChar),
new SqlParameter("@JS_CreateID" , SqlDbType.Int)
};
parms[0].Value = year;
parms[1].Value = id;
return djp.getOne(" and JS_Year = @JS_Year and JS_CreateID = @JS_CreateID", parms);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码没有,倒是可以给你两个建议:
1、使用存储过程,这样就参数化了,可以防止sql语句的非法注入
2、写一个函数,把插入语句的sql中的 ' 字符替换为空:
public static string Filtered(string str)
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
1、使用存储过程,这样就参数化了,可以防止sql语句的非法注入
2、写一个函数,把插入语句的sql中的 ' 字符替换为空:
public static string Filtered(string str)
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追问
请问怎么将SQL语句参数化啊?
有例子吗?
追答
去我空间看看吧,如果没有的话上CSDN网站搜索
楼主要自己学会学习能力,学会自己想办法解决。
参考资料: http://hi.baidu.com/hunles/home
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static string hacksql(string str)
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
使用的时候
string name=hacksql(txtuid.Text.Tostring().Trim());
{
str = str.Replace("'", "");
str = str.Replace("@", "");
str = str.Replace("=", "");
str = str.Replace("!", "");
str = str.Replace(" ", "");
str = str.Replace(".", "");
str = str.Replace("[", "");
str = str.Replace("\\", "");
return str;
}
使用的时候
string name=hacksql(txtuid.Text.Tostring().Trim());
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询