如题现有的措施:
1:验证码
2:关键字段判断重复
3:IP判断
4:限制在5分钟内不能重复注册以上措施都不起作用,现在还是在没半分钟数据库中有一条新的记录,可以肯定是从网站的注册页面注册的,虽然会员有个审核功能,注册的新会员无任何权限,可老是被这样的刷,实在让人惭愧,请高手解答
1:验证码
2:关键字段判断重复
3:IP判断
4:限制在5分钟内不能重复注册以上措施都不起作用,现在还是在没半分钟数据库中有一条新的记录,可以肯定是从网站的注册页面注册的,虽然会员有个审核功能,注册的新会员无任何权限,可老是被这样的刷,实在让人惭愧,请高手解答
解决方案 »
- 如何将EF 4.1中带有导航属性的实体类序列化为JSON对象呢?
- 如何终止正在还原的数据库
- 有人做过SMTP发送邮件吧,请问有人做过SMTP“收信”吗?
- 【自定义TextBox验证控件无法阻止回传的问题】【欢迎高手赐教】
- 谁能告诉我(AspNetPager+Repeater)分页怎么做啊
- 各位高手:关于一个类似淘宝网站首页"宝贝类目"文字排布问题
- asp.net中如何控制客户端的扫描仪扫描文件并上传到server端?
- 查询的问题
- 需求:需要动态选择条件(参数)和操作符(加减乘除与或非)组成表达式。毫无头绪,请问有没有好的设计方案
- 在文本文件存入,sqlserver或者xml的时候,怎么保持原貌?
- cuteeditor图片水印问题
- pictureBox显示webbrower中的验证码图片
我做asp.net 也有4年了,在刚学asp.net的时候就知道一个道理,客户端的东西,服务器端永远都不能相信,也就是说,不管客户端到底有没有验证,服务器端都是要重新验证一遍的
比如我把你的注册页面的html另存下来,在我本地提交是否可以注册?是的话我就可以改你的一些验证什么的。
我的网站在正常注册的情况下(也就是人工注册)没有2分钟是不可能填写完所有内容的,现在数据库里面的数据是没30秒就有一条数据注册页面:http://www.tzhzh.com/member/register.aspx
邮箱验证,加入是否激活状态和注册时间如果规定时间内没激活(比如说:30min),删除些条注册信息。
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;
}
; [8 y; @- Q2 q/ S* t2 H3 X7 i4 P
( A! N, N9 a0 r 另外还可以设置注册限制:“Discuz! 选项-->注册与访问控制-->IP 注册间隔限制(小时) ”在这里设置同一台电脑注册时间的间隔也可有效防止恶意注册。
{
if(sqlPost.indexof("username")>0)
{
//这里判断是提交的什么数据。username是代表一个字段值。
}
}
这样你提交的字段是随机的,注册机不好判断。不过道高一尺,魔高一丈,很难说。
验证码的值 我同时放在了 cookie 和 session 里面判断的时候 同时判断 if(cookie["value"]==ss&&session["value"]==ss) ss变量就是用户注册时输入的验证码的值
我猜想你的验证码是根据url后面的随机数生成的,如果真的是这样,别人也可以同样利用这个随机数生成真正的验证码。
2、还可以把注册分几步进行,“第一步,第二步,第三步”这样,应该有点用。
这样直接访问不要让看到验证码,(应该可以判断的,验证码的父级要是网页元素,可以测试一下。)还可以点击文本框后再显示出验证码,
限制弄多了,注册机也会烦了。呵呵。
1张临时注册表(你自己说的几种方式也放进去),所以注册会员都注册到这张表,经过email验证的才添加到另一张正式会员表,我保证你这样的数据,有效性,真实性都会比以前高的。