如题现有的措施:
1:验证码
2:关键字段判断重复
3:IP判断
4:限制在5分钟内不能重复注册以上措施都不起作用,现在还是在没半分钟数据库中有一条新的记录,可以肯定是从网站的注册页面注册的,虽然会员有个审核功能,注册的新会员无任何权限,可老是被这样的刷,实在让人惭愧,请高手解答

解决方案 »

  1.   

    post判断接收从本网站提交的数据。
      

  2.   


    我做asp.net 也有4年了,在刚学asp.net的时候就知道一个道理,客户端的东西,服务器端永远都不能相信,也就是说,不管客户端到底有没有验证,服务器端都是要重新验证一遍的
      

  3.   

    外部post数据,
    比如我把你的注册页面的html另存下来,在我本地提交是否可以注册?是的话我就可以改你的一些验证什么的。
      

  4.   


    我的网站在正常注册的情况下(也就是人工注册)没有2分钟是不可能填写完所有内容的,现在数据库里面的数据是没30秒就有一条数据注册页面:http://www.tzhzh.com/member/register.aspx
      

  5.   


    邮箱验证,加入是否激活状态和注册时间如果规定时间内没激活(比如说:30min),删除些条注册信息。
      

  6.   


    IP判断:        /// <summary>
            /// 获取客户端真实IP
            /// </summary>
            /// <returns></returns>
            public static string GetIP()
            {
                string strIP = "";
                if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                    strIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                else
                    strIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
                return strIP;
            }
      

  7.   

    以管理员身份登入Discuz!后台,依次 “Discuz! 选项 -->安全控制--> 启用验证码”。将“新用户注册”选项前打勾,可有效防止注册机批量注册。
    ; [8 y; @- Q2 q/ S* t2 H3 X7 i4 P
    ( A! N, N9 a0 r  另外还可以设置注册限制:“Discuz! 选项-->注册与访问控制-->IP 注册间隔限制(小时) ”在这里设置同一台电脑注册时间的间隔也可有效防止恶意注册。
      

  8.   

    Discuz 为你的 网站名 后台
      

  9.   

    还可以考虑把input的name属性加写随机后缀,提交后接受时可以用一个循环伪代码如下foreach(sqlPost In Request.Form)
    {
       if(sqlPost.indexof("username")>0)
       {
           //这里判断是提交的什么数据。username是代表一个字段值。
       }
    }
    这样你提交的字段是随机的,注册机不好判断。不过道高一尺,魔高一丈,很难说。
      

  10.   


    验证码的值 我同时放在了 cookie  和 session 里面判断的时候 同时判断 if(cookie["value"]==ss&&session["value"]==ss)  ss变量就是用户注册时输入的验证码的值
      

  11.   

    <img src="../ValidCode2.aspx?634165373154218750" alt="验证码" name="imgVCode" width="85" height="22" border="0" id="imgVCode" />
    我猜想你的验证码是根据url后面的随机数生成的,如果真的是这样,别人也可以同样利用这个随机数生成真正的验证码。
      

  12.   

    验证码放在session,cookies都是没有用的。注册机就是模拟浏览器提交的,有的软件做的就是在界面放一个webbrowser,加载你的注册页面,自动填写表单的值,自动提交,防止跨站提交什么的全部没有用的,只能验证弄多点,让做注册机的人也懒得判断那么多才可以防止,1、个人认为给验证加入题目还是有点用,可以多弄几个,问题可以简单点。如果简单注册的人不会烦,注册机只有通过弹出框让注册的人手动填写。
    2、还可以把注册分几步进行,“第一步,第二步,第三步”这样,应该有点用。
      

  13.   

    3.还可以在验证码上再考虑考虑,http://www.tzhzh.com/ValidCode2.aspx?634165381661718750
    这样直接访问不要让看到验证码,(应该可以判断的,验证码的父级要是网页元素,可以测试一下。)还可以点击文本框后再显示出验证码,
    限制弄多了,注册机也会烦了。呵呵。
      

  14.   

    2张注册表
    1张临时注册表(你自己说的几种方式也放进去),所以注册会员都注册到这张表,经过email验证的才添加到另一张正式会员表,我保证你这样的数据,有效性,真实性都会比以前高的。
      

  15.   

    你这样获取IP就有漏洞了,你要知道代理IP的列表是可以伪造的,你如果以代理来路的地址作为真实地址的话IP限制就失效了,最好直接地址和代理地址都检测一下,先检测直接地址,再检测代理来路地址。
      

  16.   

    验证码还存在一个容易被忽略的时效问题,就是在客户端调用验证码生成页面之前,曾经生成过一次的验证码SESSION没有被清空,这样一来,作为注册机,我只要手工输入一次验证码就可以绕过你的验证限制了,因为你的验证码在比对之后没有及时清空,而且重新调用生成验证码的程序之前也不会改变,只要注册机不再调用你的验证码生成页面,你的验证码就等于成了一个常量了,自然就绕过去了,而且完全合法。检查一下你的验证程序,是否在验证之后清空这个SESSION了,如果没有自然就是个漏洞了。验证码的保存SESSION一定要在验证之后立即清空,不论验证是否一致,要保证每次验证之前,验证码都要重新生成。