注册 登录
编程论坛 ASP.NET技术论坛

登录窗口SQL数据查询安全问题???

寒行 发布于 2008-09-27 08:23, 996 次点击
通常我们对登录窗口比较是否是该用户时,sql语句是:(strMd5是已加密的密码)
"selelct * from Users where UserAccount="+"'"+UserName+"'"+"And UserPwd="+"'"+strMd5+"'";
我觉得,这样的话,还是存在sql注入的漏洞,请各位高手指点指点,该怎么解决这个问题??谢谢
5 回复
#2
hebingbing2008-09-27 12:03
public string HtmlEncode(string str)
        {
            str = str.Replace("&", "&");
            str = str.Replace("<", "&lt;");
            str = str.Replace(">", "&gt");
            str = str.Replace("'", "''");
            str = str.Replace("*", "");
            str = str.Replace("\n", "<br/>");
            str = str.Replace("\r\n", "<br/>");
            str = str.Replace("select", "");
            str = str.Replace("insert", "");
            str = str.Replace("update", "");
            str = str.Replace("delete", "");
            str = str.Replace("create", "");
            str = str.Replace("drop", "");
            str = str.Replace("delcare", "");
            if (str.Trim().ToString() == "") { str = "无"; }
            return str.Trim();
        }
#3
徐强2008-09-27 13:59
方法很多
第一用变量代替传的参数
第二过滤危险字符。个人觉得还是第一种比较好。
危险字符交给微软处理就是
#4
shmilylee2008-09-27 15:30
存储过程
#5
hw10242008-09-30 16:35
使用 sqlcommand 带参数执行 sql最安全
#6
frankqnj2008-09-30 19:46
不要直接使用语句  缺点你自己都说了   有被注入的危险
另外的危险就是 增加了数据传输

so   全部用存储过程 . 不用客气.
1