网站注册时用户名和Email为必填项,可是昨天竟然发现用户名和Email都为空的用户名,由于用户注册时把数据插入了几张表,这几张表的用户名都为空,什么原因导致的呢,也过滤空格了!

解决方案 »

  1.   

    第一:你代码string userName=this.txtName.text.Tirm().ToString();是否这样写了(之前要判断不必须输入用户名)。第二:黑客通过sql注入,然后添加进去的第三:没注册添加的,就是wuyqll所说的,
      

  2.   

        function JudgeUserCode(va)
        {
             va=va.Trim();
             var words=$("#filterword").val();
              $("#usercodeimg").css('display','none');
              var array=words.split(",") ;
              var index=0;
              for(var i=0;i<array.length;i++)
              {
               if(va==array[i]){
               index=1; }
              }   
              if(va=='')
                {
                    $("#usercodetip").css("display","inline-block");
                    $("#usercodetip").html('请输入用户名!');
                    return false;
                }
                else if(va.length<3||va.length>15)
                {
                    $("#usercodetip").css("display","inline-block");
                    $("#usercodetip").html('用户名必须在3到15个字符之间!');
                    return false;
                }
                else if(index==1)
                {
                   $("#usercodetip").css("display","inline-block");
                    $("#usercodetip").html('该用户名不允许注册!');
                    return false;
                }
                 else if(isDigit(va))
                {
                    $("#usercodetip").css("display","inline-block");
                    $("#usercodetip").html('用户名不能是纯数字!');
                    return false;
                }
                else if(!VerifyUserCode(va))
                {
                    $("#usercodetip").css("display","inline-block");
                    $("#usercodetip").html('用户名只能有字母,数字和下划线组成,且第一个字符必须是字母,最后一个字符不能是下划线');
                    return false;  
                }
             }
        }
    这个是js判断用户名不能为空及其它的一些验证!
    中间调用的方法就不贴了,
      

  3.   

    我无论怎么点击,js这关都过不了,服务器端的事件就更执行不过去,不能重现这种情况,我们有通过Yahoo,Google等第三方登录,但是都有标志,注册用户名为空的user是通过注册,添加进数据的!
      

  4.   

    全角的空格用.trim()能过滤掉吗?
      

  5.   

    验证用户名为空 必须在 服务器端进行验证~浏览器端的 JS验证 是为了 提高UI体验 和 减少服务器压力  也有可能呗 sql注入做防sql注入的 出来了吗?
      

  6.   


    sql注入的可能性很小啦,有用参数化!
    服务器端没有做验证,用户用很有可能用post传数据注册的!
      

  7.   

    ajax  返回 输入的用户名
    如果存在 相同的 就 提示已经注册是不是???
      

  8.   


    真有意思。javascript验证就能“算数”了?只有后台验证代码才是“说话算数”的。
      

  9.   


    是这样的。不仅仅禁用,有时候你的程序员更新某一个版本时js自己也会出现bug,此时错误的数据仍然会提交到服务器。
      

  10.   

    if(va=='')
    如果输入空格的话会不会为true???
    试试if($.trim(va)=="")吧
    不清楚。在新增的时候可以考虑在代码或者存储过程中加入判断
    虽然会影响性能。但是注册量不是很大的话应该没什么问题吧
      

  11.   

    现在前台用js判断去掉空格,然后再后台调用注册方法之前再判断一下,就行了
    document.getElementById("id").value.replace(/(^\s*)|(\s*$)/g,"")==""
      

  12.   

    [size=10jpx]其实在判断的时候,不仅仅前台判断,前台判断只是给用户一个友好的提示,在接交的时候,后台同样也需要再做一次判断,这样才能保证数据的安全性[/size]