短信、邮箱如何做好防攻击的逻辑设计

大家好,我是IT修真院深圳分院第十期学员,一枚正直纯洁善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务七——短信、邮箱如何做好防攻击的逻辑设计

 

1.背景介绍

api简介

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

 

2.知识剖析

1.互联网中Open API是什么意思

Open API即开放API,也称开放平台。 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。你写出来普通的APP当然不算,你需要找些有开放API服务的网站或者软件放到你的APP上。

 

2.任务七需要什么第三方api

需要邮箱的api,短信的api以及oss api,这里推荐使用阿里云的,因为使用起来比较方便,文档的说明比较全面。

短信、邮箱如何做好防攻击的逻辑设计_第1张图片

短信、邮箱如何做好防攻击的逻辑设计_第2张图片

3.第三方api的应用

比如说Api支付平台,就是类似易宝,支付宝,智付这些第三方支付公司,他们提供接口文档给下级商户,下级商户可以把易宝的接口文档,集成到自己的网站里,这样自己的网站就可以和易宝对接了,而易宝又是和银行和点卡商对接的,这样自己网站下的用户就可以直接进行在线支付了,支持多样化的充值通道。

 

4.短信的验证码校验

验证码具有一定的有效性,这里我们通过之前学习的缓存来存储验证码并让他具有时效性

 

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

 

1.为什么要做好防攻击

有些人可能会通过不停的申请验证码,来攻击后台系统,造成损失,浪费了一定的资源,所以我们要限制每个电话号码每天能发送的次数。

 

2.防攻击有几种解决方案

1.在获取短信验证码前增加图文验证码是较为常用的方法。攻击者一般是采用自动化攻击,增加图文验证码后,攻击者要对验证进行识别验证成功后才能进行模拟用户发送请求,这一步需要在页面中进行,无法采用自动化攻击。第一种攻击基本上失效,同时会增加第二种的攻击成本(有可能采用人工打码方式进行验证)选择验证码时既要考虑用户操作过程的流畅度,又应该考虑到安全度。

2.限制每个号码发送的数量

3.对单IP最大发送量进行限制,可以有效防止单一IP下多手机号被刷的问题。最大发送量限制是防止恶意攻击者同IP下不同手机号进行刷短信验证码行为。根据平台实际情况设计一个短信最大发送量的阀值,超过阀值将不予返回短信。

 

7.参考文献

百度、维基、CSDN

 

8.更多讨论

问:短信恶意攻击的目的是什么?

目前市面上的短信恶意攻击无非是有两种目的:

第一是以攻击某个特定的手机号为目的,黑客利用互联网中多个未经防护的短信发送接口,循环调用接口向该手机号发送短信,使手机号的拥有者不堪其扰。

第二是以恶意刷取目标网站短信验证码费用为目的,黑客发现某个未加防护的短信发送接口后,会按照某个手机号码列表,循环发送短信验证码,攻击期间黑客会不断变换ip地址,可刷取数以万计甚至更高的短信费用。被攻击的公司在损失费用的同时,也必定会收到用户的投诉,公司形象也会受损。

 

问:容易被攻击的场景有哪些

最常被攻击的场景是用户注册页面,或者是手机短信验证码快捷登录页面、网络在线投票等页面。此类场景下的发送短信验证码的接口,往往未对调用方进行相关的身份验证。

 

问:还有哪些防攻击思路

此类策略属于开脑洞式的、跳出常规思维的解决问题的办法,举两个例子:

  1. 注册的场景下,可以先让用户输入手机号,接着设置密码,密码设置成功之后再进行短信验证码的发送。这样就从流程上增大了黑客的攻击成本,可大大避免非攻击的概率。
  2. 像微信、QQ以及一些其他应用那样,让用户先发送指定短信给企业,以此来验证用户是否掌握着这个手机,企业验证通过后再进行接下来的短信验证码发送。这真是一个绝妙的主意,从根本上杜绝了黑客攻击的可能。但是一般的应用需要谨慎使用这个功能,考虑自己的产品有没有必要做这种功能的开发,是不是普通的策略就够用了。而且面对这种用户体验不是那么好的方式,自己的产品是否有足够的信心相信用户一定会接受这种引导。

以上是对于几种防攻击策略的思考,在具体的产品设计过程中,可以综合使用,在产品安全和优秀的用户体验之间寻找一个极佳的平衡。

 

 

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

 

技能树.IT修真院   

  “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

   这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

 

快来与我一起学习吧~http://www.jnshu.com/home

腾讯视频:https://v.qq.com/x/page/j075990ys6n.html

你可能感兴趣的:(短信、邮箱如何做好防攻击的逻辑设计)