|
主题: ASP怎么样实现这种功能:帐户锁定
|
 一笑
职务:普通成员
等级:1
金币:0.0
发贴:118
|
#12003/12/15 15:17:46
防止在线穷举破解,采用帐户锁定办法是最最有效的一种方法,即在用户输错密码指定的次数后,冻结帐户一段时间,使在线破解失效。 怎么样用ASP实现这种功能呢? 请教高人指点!!! 谢谢!!
|
 沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
|
#22003/12/15 15:35:05
用一SESSION变量记载登陆次数,如果大于某个次数,限制该IP段的登陆一段时间.
难人一个……
|
 一笑
职务:普通成员
等级:1
金币:0.0
发贴:118
|
#32003/12/15 17:02:41
arhui在上个帖子中说 引用: 用一SESSION变量记载登陆次数,如果大于某个次数,限制该IP段的登陆一段时间.
代码要怎么样写呀??可以说说吗? 不好意思,小弟是新手..
|
 icerain
职务:普通成员
等级:1
金币:1.0
发贴:249
|
#42003/12/16 19:21:59
用一SESSION变量记载 错误的,同一用户名 的登陆次数
|
 沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
|
#52003/12/16 20:56:02
yxrew在上个帖子中说 引用: arhui在上个帖子中说 引用: 用一SESSION变量记载登陆次数,如果大于某个次数,限制该IP段的登陆一段时间.
代码要怎么样写呀??可以说说吗? 不好意思,小弟是新手..
你先写啦,写完了再贴上来,要是还有什么问题再来讨论啦
难人一个……
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#62003/12/17 9:50:36
这个不是代码的问题 你先搞明白原理,在头脑中要有一个明确的概念,就是流程是怎么来控制的
|
 Juven
职务:普通成员
等级:2
金币:1.0
发贴:474
|
#72003/12/18 0:50:13
我简单介绍一下代码: 新建一个表lockip,字段1为lockip,varchar型,字段2为locktime,字段属性smalldatetime 建立好登录表单,代码:
<%session("logintimes")=0%> <form method="post" action="" name="theform"> 用户名:<input name="admin_user" type="text" size="28"> 密 码:<input name="admin_pwd" type="password" size="28"> <input type="submit" name="Submit" value="登 录"> <INPUT type=hidden value=CheckLogin name=method> </form>
验证代码: <% '用户登录IP ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") if ip = "" then ip = Request.ServerVariables("REMOTE_ADDR")
'从数据表lockip中删除超过2小时被封的IP conn.execute("delete from lockip where DateDiff(""hh"",locktime,getdate())>2") 'session("logintimes")累加三次后,将当前用户的IP写进lockip数据表中 if session("logintimes")=3 then conn.execute("insert into lockip(lockip,locktime) values ('"&ip&"','"&now()&"')")
'验证登录IP set rsd=conn.execute("Select * from lockip where lockip='"&ip&"'") if not (rsd.eof and rsd.bof) then response.write "你非法登录系统,已被取消登录权限!" else admin_user=trim(request.form("admin_user")) admin_pwd=trim(request.form("admin_pwd")) '这里与系统管理员的数据表进行验证,我不多加介绍了。 '.................. '关键是在系统表中密码字段pwd与admin_pwd验证时,如果密码错误, '就设session("logintimes")=session("logintimes")+1, '这点相当重要。累计三次密码错误就记录IP了。 end if rsd.close set rsd=nothing %>
有问题再留言我吧。 :) PS:不好意思,本来想用论坛的代码UBB格式用的,但发现很长的一段代码在[code]中显示后面字符被截取了,只能选择醒目点的颜色了。
|