登录接口防攻击 02

可以参考前一篇博客:http://hw1287789687.iteye.com/blog/2215776

 

我们先考虑一种机器自动攻击的情形:

比如攻击者通过程序,每10秒钟访问登录接口,并且用户名和密码都一样,当然密码是错误的.

如何防止这种攻击呢?

方案一:

(1)登录失败,则开始计数;

(2)判断失败次数是否超过10(次数可以定制),若超过,则直接返回response code为401(无权访问)

,若没有超过,继续访问数据库进行登录验证,登录失败则失败次数加1

(3)登录失败,判断与之前登录失败的密码是否一致,若一致,则失败次数加1;若不一致,则执行(1);


 

 

那么有个问题:

判断失败次数是否超过10,则直接返回response code为401,万一修改了密码,原错误密码是正确的怎么办呢?

判断超过10次的基础上,再判断与上次登录相距多久,如果超过1个小时,则仍然查数据库. 

 

(4)若登录成功,则失败次数减1

 

 

注意:每个错误密码都对应自身失败的次数,而不是所有错误登录一起计算的.

前10次,还是会查询数据库.后面的登录(相同的错误密码)就不会查询数据库了,什么也不做直接设置response 的status为401.

 

为什么要处理?有人说就让它登录呗,反正密码是错误的,又登录不进去!

但是这些无效的请求依然会访问数据库,无谓地增加系统负担,所以必须要考虑应对方案.

 

方案二:

相同的错误密码,连续登录3次之后,后面的登录,直接匹配用户名和密码是否一致,若一致,则直接返回登录失败信息,不一致才真正访问数据库.

(a)登录失败,判断是否有该错误密码的记录,若有,则失败次数+1;若没有则增加记录,错误次数设置为1;

(b)判断失败次数是否超过3,超过则直接返回登录失败,不查询数据库;否则,查询数据库;

(c)若修改密码,则清除该用户所有的错误密码记录.

可以参考前一篇博客:http://hw1287789687.iteye.com/blog/2215776

时间: 2024-09-27 08:21:18

登录接口防攻击 02的相关文章

登录接口防攻击 03

接着前两篇日志 http://hw1287789687.iteye.com/blog/2215776 http://hw1287789687.iteye.com/blog/2216493   我之前遇到过忘记路由器密码的情况,我在192.168.1.1的登录界面尝试可能的密码,希望能够猜中,但是输错3次之后,就必须等待5分钟,我们可以借鉴这种策略.   连续3次登录失败,就锁定5分钟(5分钟之内无视登录请求) 解释: 连续登录失败3次,就设置isLocked为true,表示锁定,并设置定时器,任

360网站安全检测平台:42%使用UCenter一站登录接口网站未修费漏洞

3月5日消息,针对2011年10月曝出的"UCenter多点登陆接口UC-key漏洞",360网站安全检测平台公布抽样调查数据显示:在使用UCenter一站登录接口的网站中,目前约42%的网站仍未修复该漏洞,可能被黑客轻易登录并完全控制他人帐号,主要影响社交返利团购等网站,建议相关网站参考360网站安全检测平台提供的方案修复漏洞. 360网站安全检测平台:http://webscan.360.cn UCenter是应用广泛的开放性"用户中心"程序,建站者经过简单修改

手机app接口开发-手机APP登录接口设计问题,不知道加密方式如何登录?

问题描述 手机APP登录接口设计问题,不知道加密方式如何登录? 不知道网站的密码的加密方式,知道密码,手机APP接口该怎么设计登录呢? 解决方案 用fiddler调试,看看密码是不是明文传过去的.如果不是,再用js调试工具看密码在客户端的加密方式是什么. 解决方案二: 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇) 解决方案三: 知道密码,但不知道加密方式,这个就需要从 PC,即网页端分析了.只有分析出加密的算法,

webservice接口开发-Webservice开发单点登录接口怎么实现,有具体代码实例更好

问题描述 Webservice开发单点登录接口怎么实现,有具体代码实例更好 现在要实现一个单点登录功能的接口,请问该如何实现这个功能?使用webservice开发的接口来实现它. 解决方案 既然是两个工程,那就一个做客户端,一个做服务端了,服务端可以把服务发布出来,客户端进行调用,就可以了啊,分布式开发.. 解决方案二: 你去东软帝国这个网站看看,里面有一个,不值得是不是基于webservice的

单点登录接口设计

问题描述 我这里要开发项目,要登陆远程一个公共站点A网址,在那个页面进行了数据id和pwd后,验证成功后跳转我开发的页面,返回来的时候有用户名(用户名怎么来的?)和一些个人信息?现在远程站点给我一个单点登录接口设计文档,这里的过程是怎么样的?有谁可说的详细些,头大来着! 解决方案 解决方案二:不同的人开发的单点登录都是不一样的,问我们没结果的.人家文档肯定说清楚.明白怎么作了.要不然要这文档干嘛?解决方案三:>>"在那个页面进行了数据id和pwd后"你还是回去重念语文比较好

使用API网关流控防攻击

API使软件之间的通讯更加便捷,使得基于软件支撑的商业模式得以落地,如移动支付,从而促进API经济的繁荣.现在开放API服务已经成为软件服务的主要趋势,对于API提供者而言,API服务的安全性则是需要重点考虑的.但互联网上的攻击,或者某次促销导致流量暴增,超出服务承受能力的情况无可避免,在这种情况下,怎么保护后端服务不受影响,服务不被中断? API网关在设计之初,就重点考虑了安全性的问题,流控作为API网关的主要功能,能从API分组.API.用户.APP四个维度进行流量控制,当流量超过设置阈值时

qq登录,新浪微博登录接口申请过程中遇到的问题_php实例

1,qq登录接口申请 申请地址是:http://connect.opensns.qq.com/,登录进去后,点击右上方的登录.然后填写信息就行了. 我遇到的问题是在域名审核时,域名审核就是不通过,没办法我就发邮件给qq互联的客服,邮件地址是connect@qq.com.qq还是挺给力的2,3个工作日就能给你审核通过. 审核通过后,开发接口并上线,在登录http://connect.opensns.qq.com/,申请上线,如果不申请上线的话,登录个数有限制. 2,新浪微博接口申请 申请地址是:h

php新浪微博登录接口用法实例_php技巧

本文实例讲述了php新浪微博登录接口用法.分享给大家供大家参考.具体分析如下: 在做微博登陆之前是需要申请到APP KEY 和App Secret,这个的申请方式请去 open.weibo.com 申请相关内容. 在官网也有相关的开发文档http://open.weibo.com/wiki/可以查看相关资料,我这里下载的php的SDK直接进行的web网站应用. 下载SDK,配置好config文件,代码如下: 复制代码 代码如下: <?php header('Content-Type: text/

android微信授权登录接口

问题描述 android微信授权登录接口 code已经拿到怎么拿到token请求已经发送出去没有返回,有没有详细的请求函数,新手求助 解决方案 发出数据没有返回你应该先检查你的服务器在外网能不能访问到,你的地址和端口对不对. 解决方案二: 百度友盟.他给你封装好了,你直接拿来用.