ITPub博客

首页 > 数据库 > 数据库开发技术 > 短信接口被刷了

短信接口被刷了

原创 数据库开发技术 作者:凌虚 时间:2017-12-29 17:02:26 0 删除 编辑


前几天短信接口(针对注册场景)被人恶意刷了,损失了上千块,对此我的第一反应是加手机号和 IP 限制,不过然并卵。首先,手机号都是动态高仿的(轻松过正则),根本无法判断是否是真实有效的;其次,对方用了高匿 IP 代理,到我们后台的 IP 地址也是动态的,一查全国各地、大江南北的都有,也无法溯源,所以限制手机号、限制 IP 的方法收效甚微(几乎没用),甚至会影响到正常用户的使用。



应对方法:


1、加验证码(知道为什么 12306 的验证码这么奇葩吗,也是为了防爬防刷),验证码必须通过后台验证,传统的几个字符,或者一个简单的数学表达式求值(1 + 3 =?这种),后台生成验证码传给前端,用户必须验证通过才能调用短信接口,对验证码的传输也有多种方式,比如,纯字符串但加密后传输,或者在后台生成 svg 或其他形式的图片再传输。另外,验证码应该是单次有效,这就是说验证通过后的验证码必须失效。


2、加签名,例如,拼接参数 phone=...&expire=...&key=... 加密(key值由我们自己指定,可以定期更换)生成签名,后台收到请求后检查签名有效性。


3、接入第三方专业的验证,如:极验 。免费版的会随机投放广告,请求量也有限制,主要也是针对个人用户或初创团队,收费版的需要咨询商务。其实验证码对用户体验来说是个不可逾越的障碍,不过极验在这方面还是做得挺不错,另外有个缺点就是目前还没有 react-native 的官方包。


其实验证码这种并不是绝对安全的,只能是提高了一下门槛,总之,道高一尺魔高一丈,是一个相互博弈的过程。

暂时想到这么多吧。




原文作者:系统架构师Go;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-03-30

  • 博文量
    154
  • 访问量
    63683