注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

K8拉登哥哥's Blog

K8搞基大队[K8team] 信息安全 网络安全 0day漏洞 渗透测试 黑客

 
 
 

日志

 
 

[原创]ASP.NET(C#)后台安全登陆代码(防XSS攻击\万能密码漏洞)  

2011-07-21 19:33:43|  分类: asp.net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        程序: ASP.NET(C#)后台安全登陆代码(防XSS攻击\万能密码漏洞)
        语言: ASP.NET(C#)
        作者: QQ吻  QQ:396890445
        组织: CrAcK8_编程小组[K8team]
        Blog:http://qqhack8.blog.163.com
        发布:2011-07-21  下午: 19:30

        string ispostback = Context.Request["ispostbask"];
        string k8user = this.txtUser.Text.Trim();
        string k8pwd = this.txtPwd.Text.Trim();
        string k8md5pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(k8pwd, "MD5").ToLower();
        //判断是否是表单提交过来的
        if (ispostback == "true")
        {   
            //判断输入是否为空
            if (k8user != "" || k8pwd != "")
            {
                //使用正则 严格检查 这里是关键 呵呵
               //没有特殊符号 所以万能密码里的= 号分号等失效
               //XSS也是一样 < % 各种语句要用到的符号都不符合
                //用户名长度4-8个 字母或数字
                Regex k8chkName = new Regex("^[[a-zA-Z0-9]{4,8}$");
                //密码7-12 字母大小写以及数字
                Regex k8chkpwd1 = new Regex(@"\d+");
                Regex k8chkpwd2 = new Regex(@"[a-zA-Z]+");
                Regex k8chkpwd3 = new Regex(@"^[a-zA-Z0-9]{7,12}$");
                //检测用户名
                if (k8chkName.IsMatch(k8user))
                {   
                    //检测密码
                    if (k8chkpwd1.IsMatch(k8pwd) && k8chkpwd2.IsMatch(k8pwd) && k8chkpwd3.IsMatch(k8pwd))
                    {
                        //ClientScript.RegisterStartupScript(GetType(), "", "alert('符合输入');", true);
                        //这里再连接你的数据库 插入或者干嘛 随你大小便
                        try
                        {
                            OleDbConnection K8conn = new OleDbConnection();
                            K8conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("K8Data/k8access.mdb");
                            K8conn.Open(); //打开数据库
                            //定义字符串
                            string k8sql = "select count(*) from K8admin where User='" + txtUser.Text.Trim() + "' and Pass='" + k8md5pwd + "'";//建立sql查询语句
                            OleDbCommand cmd = new OleDbCommand(k8sql, K8conn);//建立数据集
                            int state = Convert.ToInt32(cmd.ExecuteScalar());//执行sql语句,并返回获得值
                            if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错
                            {
                                ClientScript.RegisterStartupScript(GetType(), "", "alert('用户不存在或密码错误');", true);
                            }
                            else//正确数据指向登陆后页面
                            {
                                //Session["k8user"] = k8user;
                                //Session["k8pass"] = k8md5pwd;
                                Response.Cookies.Add(new HttpCookie(k8user, k8md5pwd));
                                Response.Redirect("admin.aspx");//指向登陆后页面
                            }
                            K8conn.Close();//关闭数据库
                        }
                        catch
                        {
                            ClientScript.RegisterStartupScript(GetType(), "", "alert('连接数据库失败');", true);
                        }
                        return;
                    }
                }
            }
            //为空或帐号密码错误
            ClientScript.RegisterStartupScript(GetType(), "", "alert('用户不存在或密码错误');", true);
        }
  评论这张
 
阅读(2116)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016