多平台统一管理软件接口,如何实现多平台统一管理软件接口
1573
2022-11-20
本文目录一览:
普通自开发
发送时间间隔
设置同一个号码重复发送的时间间隔,一般设置为60-120秒。该手段可以在一定程度上防止短信接口被恶意攻击,且对用户体验没有什么伤害。但是不能防止黑客更换手机号进行攻击,防护等级较低。
获取次数限制
限制某个手机号在某个时间段内获取短信验证码次数的上限。采用这种策略时在产品设计过程中,有几点需要注意。
定义上限值。根据业务真实的情况,甚至需要考虑到将来业务的发展定一个合适的上限值,避免因用户无法收到短信验证码而带来的投诉。
定义锁定时间段。可以是24小时,可以是12小时、6小时。需要根据业务情况进行定义。
IP限制
设置单个IP地址某个时间段内最大的发送量。该手段可很好的预防单一IP地址的攻击,但是也有两个很明显的缺点:
对于经常变更IP地址进行攻击的黑客,该手段没有很好的效果。
IP的限制经常会造成误伤。如在一些使用统一无线网的场所,很多用户连接着同一个无线网,这个IP地址就容易很快达到上限,从而造成连接该无线网的用户都无法正常的收到验证码。
图形验证码
在发送短信验证码之前,必须通过通过图形验证码的校验。这种手段相对来说可以防止某些攻击,因此也是目前非常普遍的短信防攻击机制。但是在使用过程中涉及到用户体验问题,不能简单粗暴地套用这一策略。以下几个点值得仔细考虑:
是不是每次获取短信验证码之前都需要用户输入图形验证码,一般来说这样做会极大地影响用户体验,虽然是相对安全,但是用户用着不爽了。
可以给一个安全范围。结合手机号限制、IP限制来考虑,比如同一个手机号当天第3次获取短信验证码的时候,出现图形验证码;比如同一个IP地址当天获取验证码次数超过100次后,出现图形验证码。
加密限制
通过对传向服务器各项参数进行加密,到了服务器再进行解密,同时用token作为唯一性识别验证,在后端对token进行验证,验证通过才能正常将短信发送。该手段可以在保证用户体验的情况下,可以有效防止某些攻击,因此也是目前比较常见的短信防攻击机制。同时也有很明显的缺点:
使用的加解密算法可能会被破解,需要考虑使用破解难度较大的加解密算法。
在算法不被破解的情况下可以有效防止报文攻击,但是无法防止浏览器模拟机式攻击。
以上是几种常见的短信风控策略,在具体的产品设计过程中,可以综合使用。
使用第三方防御
短信防火墙
为了在产品安全和优秀的用户体验之间寻找一个极佳的平衡。新昕科技的产品研发团队结合各种风控策略的优点研发出了一款短信防火墙。 从以下几个方面概括一下:
为保障优秀的用户体验,摈弃了目前影响用户体验最为严重的图形验证码等人机校验程序,做到无感验证。从而达到完美的用户体验。
结合用户的手机号码 、IP地址 、设备指纹三个唯一身份标识设置不同维度的风控策略。将各个维度之间相互配合,达到一个最为合理的风控限制指标。
根据业务情况自动伸缩风控限制,在检测处受攻击时自动加大风控限制力度,在正常是再归回到正常风控标准。
考虑到存在新老客户的区别,特意增加老客户VIP通道,在受到攻击时,风控指标紧缩的情况下,保证老客户通道畅通无阻,从而降低误伤率。
通过以上策略可以有防止黑客通过随意切换手机号及IP地址的方式可以刷取短信。同时加入模拟器检测,以及参数加密等风控策略,有效防止黑客攻击。
可通过风控防火墙控制台,实时观测风控结果,在受到攻击时达到第一时间预警的效果。
访问的时候记录用户IP,写到Memcache,ip为key,值为1,有效期一个小时;
每访问一次就给这个IP+1,加到10W次就不执行,只能等到记录过期,然后就可以继续开始咯
为什么会有人要刷接口?
1、牟利
黄牛在 12306 网上抢票再倒卖。
2、恶意攻击竞争对手
如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。
3、压测
用 apache bench 做压力测试。
4、当程序员无聊的时候
什么是刷接口的"刷"字?
1、次数
多
2、频率
频繁,可能 1 秒上千次
3、用户身份难以识别
可能会在刷的过程中随时换浏览器或者 ip
判断接口是否是恶意?
根据用户粒度,如果该用户符合上面提到的“刷”的概念,就是恶意的。
用户粒度如何划分?
1、当前网页
优点:无
缺点:没有任何意义,一刷新页面用户的身份就变了
2、session
优点:伪造成本一般(可以理解成一个浏览器对应了一个用户)
缺点:当用户手动清除 cookie 的时候即失效
3、ip
优点:伪造成本高
缺点:要考虑一个公司、一个小区的人一般会共享一个 ip,所以适当的要放宽对单一 ip 的请求限制
ip 信息是存在请求头里的,而 https 对请求本身做了加密,可以防止 ip 信息被伪造或篡改。所以推荐服务器采用 https 传输。
当知道接口是恶意请求时,我们该怎么做?
一、直接拒绝访问
优点:简单粗暴
缺点:简单粗暴
二、返回“操作频繁”的错误提示
优点:提示友好
缺点:会把确实是操作比较频繁的真实用户拦截
三、验证码
1、图形

2、滑块

3、找不同

优点:精准识别请求是真人还是机器发出的,二次筛选出真正的用户
缺点:不够人性化,用户操作时间长、体验差
4、限制ip
客户端请求的时候 , 把ip记录下来,每次访问这个ip访问次数+1,如果查过制定次数,把这个ip拉黑
实例:
安全问题是长期的和攻击者斗智斗勇的问题,没有一劳永逸的解决方案,不断交锋,不断成长
1、时间限制:60秒后才能再次发送
从发送验证码开始,前端(客户端)会进行一个60秒的倒数,在这一分钟之内,用户是无法提交多次发送信息的请求的。这种方法虽然使用得比较普遍,但是却不是非常有用,技术稍微好点的人完全可以绕过这个限制,直接发送短信验证码。
2、手机号限制:同一个手机号,24小时之内不能够超过5条
对使用同一个手机号码进行注册或者其他发送短信验证码的操作的时候,系统可以对这个手机号码进行限制,例如,24小时只能发送5条短信验证码,超出限制则进行报错(如:系统繁忙,请稍后再试)。然而,这也只能够避免人工手动刷短信而已,对于批量使用不同手机号码来刷短信的机器,这种方法也是无可奈何的。
3、短信验证码限制:30分钟之内发送同一个验证码
网上还有一种方法说:30分钟之内,所有的请求,所发送的短信验证码都是同一个验证码。第一次请求短信接口,然后缓存短信验证码结果,30分钟之内再次请求,则直接返回缓存的内容。对于这种方式,不是很清楚短信接口商会不会对发送缓存信息收取费用,如果有兴趣可以了解了解。
4、前后端校验:提交Token参数校验
这种方式比较少人说到,个人觉得可以这种方法值得一试。前端(客户端)在请求发送短信的时候,同时向服务端提交一个Token参数,服务端对这个Token参数进行校验,校验通过之后,再向请求发送短信的接口向用户手机发送短信。
本文主要给大家介绍了短信验证码防刷,通过小编的介绍大家应该知道短信验证码防刷的必要性了吧,至于如何设计短信验证码防刷机制,小编也给出了一些实用的建议,大家可以参考去设计相关机制。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~