美文网首页
APP项目中的安全策略

APP项目中的安全策略

作者: 丘山大叔 | 来源:发表于2019-11-18 17:16 被阅读0次

前一段时间,公司因为赶进度,匆忙上线了一款APP,由于前期的疏忽大意,认为前期用户较少,防范意识薄弱,造成产品上线后的一个月后的某一天,整个APP就无法正常访问了,运维人员紧急查找问题,发现是不法份子扫描了到了APP的短信接口,造成短信接口被盗刷,导致了有大量的接口被调用,其中大部分还触发了流控。

短信验证码作为重要的身份验证工具,因其操作简便、安全性高、时效性强等优点已被开发人员广泛使用。但因其获取便利、限制较少容易被不法分子利用进行短信轰炸,恶意刷掉大量短信费用,给公司或个人造成大量的金钱损失,造成这种情况原因主要是在产品实际设计过程中,有些产品人员因为对技术实现不太了解,防范意识薄弱,简单或直接忽略对短信验证码进行限制,这才造成短信接口恶意被不法分子利用。

在介绍防刷策略前我们需要了解下常见的刷短信验证的行为。

1. 以攻击手机号为目的刷短信验证码

这类攻击目标主要是攻击者借助web网站短信接口对目标手机号进行短信轰炸。攻击者会先收集互联网上多个未经防护的网站短信接口,设定要攻击的手机号码通过模拟用户,循环向后台发送短信验证码请求,达到攻击手机号的目的。对于这类攻击通过一般验证码设置即可达到防护目的。

2. 以恶意刷取目标网站短信费用为目的的攻击

这类攻击主要目的是刷掉目标网站的短信费用,在第一种基础上攻击者会不停变换各种接口参数如手机号、IP(采用高匿代理)等去请求后台发送短信验证码,进行恶意刷短信,后台根本无力辨别用户真伪。攻击目标明确,难以防护,因其变换不同IP、手机号,一些简单措施基本失效,产品设计人员在前期产品设计时尤其需要注意这类攻击。

下面是针对攻击者做出的一些应对措施。

1.前端增加图文验证码

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

下图是几种常见的图文验证码,可以结合自身平台特点进行选择,

2.限制单个手机号每日接收短信次数和时间间隔

对单个手机号进行日接收次数的限制,可以防止单个手机号无限制刷短信,同时设置时间间隔可以有效,防止人工刷票。短信接收次数可以根据平台特点进行限制,一般日接受验证码次数为10次左右;同一号码发送时间间隔通常为60秒,前后台应保持一致,避免出现只前端做倒计时限制,后台未做限制这种低级错误。

3.对IP进行限制

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

4.对注册流程进行限定

一般来讲常被攻击的地方是注册页面,一般是从两方面进行触发流程的限定。

第一种,可以从前端写入指令,只允许在官网主页跳转入注册页面; 第二种方法是对注册流程进行分步,先进行账户密码设置,设置成功后才可以再进行下一步的短信验证。 因为增加前置条件,增加攻击难度两种方法都是能有效防止自动化攻击,需要注意的是两种方法对用户体验或多或少的影响,产品经理需要结合自身平台特点选择。

5.对发送者进行唯一性识别

为了防止第二种恶意攻击者通过修改传向服务器各项参数,造成多IP多手机号刷短信验证码的行为,所以后台应对前台传过来的参数进行验证。方法一般是用token作为唯一性识别验证,后台写一个算法将token注入到前端,然后前端可以通过相应的规则获取到token,在发送短信验证请求接口数据时带上token,在后端对token进行验证,验证通过才能正常将短信发送。

在产品设计过程中一般采用前三种方式组合使用,基本可以防止大部分恶意刷短信验证码的行为。产品人员要在防护与用户体验之间寻找平衡,结合自身产品特点选择,要未雨绸缪不应到短信被刷才进行防护。

相关文章

  • APP项目中的安全策略

    前一段时间,公司因为赶进度,匆忙上线了一款APP,由于前期的疏忽大意,认为前期用户较少,防范意识薄弱,造成产品上线...

  • F5 ASM:安全策略部署

    安全策略 F5 ASM 为每个 Web APP 提供一个安全策略,与该 Web APP 相关的所有功能配置都绑定到...

  • 关于百度app访问H5页面出现的BUG

    记录:app版本12.13.2.10项目中某些手机的百度app访问H5vue+vue-cli 列表渲染的时候,列表...

  • iOS 签名机制

    因为苹果的安全策略,通过签名机制保证手机上的每个App都是经过苹果认证的。 App的安装方式有四种: 通过App ...

  • Android App 安全策略

    前言对于一款成熟的App,在某个时间点一定会开始涉及或者说要开始考虑安全问题。本着一贯的风格,把自己最近一段时间以...

  • iOS 签名总结

    原文地址 因为苹果的安全策略,通过签名机制保证手机上的每个app都是经过苹果认证的。安装方式: 通过App Sto...

  • 2021-12-23 在react项目中使用JavaScript

    在create-react-app搭建的项目中使用装饰器 执行yarn eject命令,暴露出配置项 因为装饰器是...

  • 动态修改AppIcon

    动态修改App的Icon 第一步:把资源文件导入到项目中 新增的icon不能放在Assets.xcassets 项...

  • 解决在手机微信中由于安全策略导致无法唤醒app的问题

    解决在手机微信中由于安全策略导致无法唤醒app的问题 背景: 这周一直在做h5唤醒app的功能,当测试到微信的时候...

  • 主题,动态修改css中:root定义的变量

    额,我是在ionic3项目中需要该功能,别的地方应该也能用这个方法,如:网页等。我在app/theme/varia...

网友评论

      本文标题:APP项目中的安全策略

      本文链接:https://www.haomeiwen.com/subject/qepbictx.html