精华内容
下载资源
问答
  • 你是否遇到过短信验证码轰炸这样的事,不到十分钟的时间,就接连收到上百条短信验证码,这个时候就要小心了,这是你的手机遭遇短信验证码轰炸,该如何处理呢? 手机接连收到上百条短信验证码,很有可能是诈骗团伙...

    大部分时候,短信验证码是用来进行网站或者App安全验证的,比如我们更换了手机,重新登陆支付宝App时,为了保障账户安全,支付宝平台会要求进行输入短信验证码,验证码的形式有很多,比如图形、数字等。你是否遇到过短信验证码轰炸这样的事,不到十分钟的时间,就接连收到上百条短信验证码,这个时候就要小心了,这是你的手机遭遇短信验证码轰炸,该如何处理呢?

    手机接连收到上百条短信验证码,很有可能是诈骗团伙利用身份证、手机号码等存在的各种漏洞,进行补卡、骗取验证码等行为。

    一.注意不要回复
    当手机遭遇短信验证码轰炸时,切记切记,一定不要回复,最好每天 短信都查看一下,看有没有自己的消费记录,有时候很可能是银行卡被盗刷了,通过短信验证码轰炸来掩盖掉消费提醒,如果确定没有,过几个小时后大批量删除就是,如果有就需要报警处理,并冻结所有银行卡

    二.拨打12321
    12321是网络不良与垃圾信息举报电话,关键时刻可以保护你的个人网络信息安全,拨打12321投诉,同一个短信发送端口超过100人投诉就会被封停

    三.向电信运营商投诉
    用户在接收到骚扰电话或者遇到短信验证码轰炸时,可以拨打相应电信运营商的客服,具体操作方法如下:

    1.中国移动用户:
    ①编辑“垃圾信息发送号码+空格+垃圾短信内容”发送至10086999
    ②安卓用户可以安装移动服务客户端,点击“短信举报”,选择要举报的垃圾信息
     
    2.中国联通用户:
    ①将垃圾短信转发给10010,并注明“我要举报”;
    ②手机营业厅客户端,点击“垃圾短信一键举报”
     
    3.中国电信用户:
    编辑短信“被举报号码+被举报信息内容”发送至10000999

    展开全文
  • 思路:采用APP前端签名加密,后台验证. 方法: 密钥key:前后台私下约定的一个长度大于8位的随机字符串. 接口入参:手机号码mobile,加密后的签名code.其中签名code=MD5(mobile+key). 服务端解密验证:判断if(code==MD5...

    思路:采用APP前端签名加密,后台验证.

    方法:

    密钥key:前后台私下约定的一个长度大于8位的随机字符串.

    接口入参:手机号码mobile,加密后的签名code.其中签名code=MD5(mobile+key).

    服务端解密验证:判断if(code==MD5(mobile+key));就可以向手机号码mobile发送验证码了,否则返回特定值.

    这个方法的好处,前端页面不需要通过图片验证码来发送手机验证码,黑客无法轰炸.

    弱点:只适合用在移动APP上,web不可以用,否则反而泄露密钥key.

    补充策略:当请求的签名不能通过验证的时候,不返回任何参数,让对手等待,消耗其响应时间,降低攻击效率。

    展开全文
  • 短信验证码被刷怎么办?一 事件简述二 问题分析三 应急解决方案1 黑名单模式拦截2 请求验证拦截3 应急方案总结四 更完美的解决方案 一 事件简述 这是一件发生在前段时间的事情,当时的情况是这样的:一个新的功能...

    一 事件简述

    这是一件发生在前段时间的事情,当时的情况是这样的:一个新的功能模块上线之后,出现短信接口被恶意访问调用的情况,请求数量很大,而且通过查看短信服务商控制台也发现,短信发送量在飙升,看着统计曲线的增长,紧张的气氛也渐渐变得更浓,很明显,事情并不是遇到一个bug那么简单,因为牵涉到服务费用,需要立即解决。

    当然,接口被恶意访问的这个问题已经解决,因此写了这篇文章,可以做一下简单的记录,并且静下心来分析一下其中的问题了,看完这个案例,大家也可以一起讨论讨论。

    二 问题分析

    在这里插入图片描述
    这是当时的短信接口日志数量曲线,某一个时间点突然增长了起来并且没有降下去的意思,通过日志分析发现,攻击者用的不同IP、不同号码进行恶意调用,请求量较大,赶紧将事件做了记录并通知了相关人员,和同事做了沟通后,大家也都提出了自己的意见:有人说赶紧修改前端功能,发一版新的APP,有人说修改后端代码,紧急补救一下,也有人说要不要先关停一下服务…在网上技术论坛搜了一下相关问题,好像碰到这种事情的也不少,基本思路都是加验证码,做好安全验证,被攻击了无可奈何之类的云云。

    简单对各个方案做了整理:

    1. 修改url(APP已经上线,暂时无法修改)。
    2. 添加验证码验证(APP已经上线,暂时无法通过这种方式来解决)。
    3. 停掉短信服务(不现实,其他功能模块也需要调用短信服务,不考虑实施)。
    4. 短信服务商自带防攻击,等一段时间,让攻击者自己停止攻击(虽然短信服务商自带防攻击,但是依然会出现大量的垃圾请求,而且服务商只是针对次数和时间做了限制,一段时间后依然会发送短信,因此,危害和损失还是不小的,问题依然急需处理掉,装鸵鸟是解决不了问题的)

    三 应急解决方案

    在用户交互界面拦截请求已经不现实了,因为移动端短时间内是无法立刻升级的,而等待攻击停止的方案也不可取,选择逃避和等待是解决不了问题的,因此最终的决定就是修改后端接口逻辑和代码。找到最关键的问题,虽然存在网络攻击,但是真正需要立刻解决的是短信服务接口的调用问题,当务之急是修改短信发送接口,尽快止损。

    通过讨论和简单的分析,最终是决定先修改后端逻辑紧急打一个线上补丁,移动端也做同步修改,等待发版。

    1 黑名单模式拦截

    由于接口一直被调用,需要紧急处理,减少短信服务费用的损失,因此一开始的出发点放在了手机号码上,针对手机号码做验证,采用黑名单的模式,对于此接口中出现的号码,在一定次数的请求后就立刻加入到黑名单列表中,再次请求时,如果是黑名单中的号码,直接返回错误码,不做任何其他处理,也不会调用短信发送接口,这种方式可能会误伤到真实用户,但是情况比较特殊,因此就选择了这个应急方案,紧急修改了后端代码,对部分代码逻辑做了修改,添加手机号码的黑名单功能。在短信发送模块中,对号码进行验证,如果一段时间内多次请求同一个号码的话,将号码存入数据库视为黑名单中的号码,不会发送短信。
    在这里插入图片描述

    拦截了近700个手机号码,这些号码中应该很多是空号吧:
    在这里插入图片描述

    2 请求验证拦截

    上面的方法虽然起到了一定的作用,但是依然无法很好的解决掉问题,为什么这么说呢?因为即使利用了黑名单模式,在进入到黑名单列表之前,依然会发送短信,试想一下每分钟1000次的恶意请求,即使拉黑了其中的一部分号码,还是会有一部分漏网之鱼会被当做正常数据,然后请求短信服务商接口发送短信,这也是一个不小的体量,黑名单模式可以处理一些问题,但是只能起到微小的作用,还需要进一步修改后端逻辑。

    回到大家都提到的用验证码做安全验证,前端虽然无法立即更新添加验证码界面和处理逻辑,但是验证码的设计就是识别正常请求和非法请求,因此找到一个方法能够识别请求是否非法即可,并不一定非要添加验证码功能。本模块在设计接口之初,就做了数据传输规定,移动端向后端发送请求时,必须在请求头中放入一些参数,这些参数本来是做分析用的,但是在这里起到了很大的作用,因此可以在请求对象request上做文章,攻击请求只是发送请求到url,攻击者也只知道url并不知道请求参数设计,因此针对这点做验证,应该可以拦截掉所有的恶意请求了,甚至请求都不会到达黑名单验证环节就已经被处理掉了。

    再次修改后端代码,由请求信息request对象入手,从请求对象request中提取数据做校检,甄别是否为正常请求,如果是正常请求,数据中的参数不会为空且参数值是可控的,而恶意虚假请求中则不含有这些参数,因此直接返回错误码不作处理即可,这个补丁打上之后,短信服务费用的损失就不会再增加了。
    在这里插入图片描述

    3 应急方案总结

    不管是前端验证码,或者这次采取的验证请求方式,都是一种验证方式,用来甄别是否为移动端APP发送过来的正常请求,如果不是,就不做处理,通过日志和黑名单数据可以得出结论,短信发送的问题已经解决。

    这个事件也说明,安全验证不能掉以轻心,也不能心存侥幸心理,一旦被心存恶意之人找到漏洞,还是挺难过的。前端验证没有完全考虑到,后端验证拦截也做的不到位,因此出现了这种情况,需要检讨和反思,而且处理方式也不是特别得当,一开始的黑名单模式并没有完全杜绝掉短信发送的问题,又去做了后面的补救,当时确实比较紧张,因此想到能用的方法就赶紧用在了修改上面。

    为何说惊险和紧张,试想一下:周末刚刚在家里修整了两天,周一的早晨,打完卡坐在工位上悠闲的喝着茶,悠悠的打开浏览器查看系统日志,忽然发现这个访问量有点大呀,隐隐觉着不对,认真的查了一下发现,接口被攻击了,而且是短信发送的接口,看着一条条的短信因为攻击而发送出去,那一条条的短信,是白花花的银子啊,能不紧张吗!什么感觉?吃着火锅唱着歌,突然就被麻匪给劫了,跟葛大爷一样,就是那种感觉。

    在这里插入图片描述

    至于说险胜,是因为虽然暂时解决了短信发送的问题,不会再进一步的造成金钱的损失,却存在另外一个问题:大量的恶意请求。

    四 最终解决方案

    使用短信防火墙。 从以下几个方面概括一下:

    新昕科技在交易反欺诈核心上, 通过AI快速学习机制,结合国际领先的设备指纹技术,首次推出无需图形验证码机制的企业短信防火墙,三步完成下载对接。
    在这里插入图片描述

    第一步:获取防火墙帐号密钥

    进入 防火墙控制台,在左侧导航栏选择【网站管理】,进入网站管理页面,单击【发到邮箱】接收密钥。
    在这里插入图片描述

    第二步:下载防火墙服务器

    前往新昕科技官网,在顶部导航栏选择【解决方案】>【下载中心】,进入下载中心页面,找到短信防火墙服务器安装包,点击【下载链接】即可下载。

    第三步:前后端接入

    前端接入

       Java 在页面合适的位置(标签内)加入以下代码引入JS文件:         
    
    <script type="text/javascript" src="/NxtJsServlet"></script>
    

    PHP 在页面合适的位置(标签内)加入以下代码引入JS文件:

       <script id="finger" type="text/javascript" src="/nxt_inc/nxt_front.php"></script>
    

    后端接入

    Java

    修改配置(和业务系统同系统不需要修改):

    newxt.ini (存放位置:"\src\resource")
    修改参数(fireWareUrl)–>http://localhost:7502 (本地服务路径)
    (isNginx)–>true(有无反向代理)

    短信下发

    public RetMsg smsSend(HttpServletRequest request, HttpServletResponse response, String clientMobile) {
        RetMsg retMsg = new RetMsg(-1, "系统异常");
        FwClient fwClient = new FwClientImpl();
        try {
            // 1 调用【短信防火墙】短信发送请求
            HashMap < String, Object > paramMap = fwClient.getSendReq(request, clientMobile);
            String jsonReq = fwClient.execReq(paramMap);
            String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
            if("REJECT".equals(smsSendRet)) {
                retMsg.setRet(3);
                retMsg.setMsg("请求过于频繁");
            }
            else {
                // 业务 TODO
                // 业务调用短信接口 TODO
                // 调用短信接口 结束
                if(smsRetMsg != null && smsRetMsg.getRet() == 0) {
                    // 2 调用【短信防火墙】成功结果
                    fwClient.execSucc(paramMap);
                    logger.debug("send succ");
                    retMsg.setRet(0);
                    retMsg.setMsg("发送验证码成功");
                }
                else {
                    // 2 调用【短信防火墙】失败结果
                    SmsVerifyCache.getInstance().remove(clientMobile);
                    fwClient.execFail(paramMap);
                    retMsg.setRet(-1);
                    retMsg.setMsg("发送验证码失败");
                }
            }
        }
        catch(Exception e) {
            for(StackTraceElement elment: e.getStackTrace()) {
                logger.error(elment.toString());
            }
        }
        return retMsg;
    }
    

    短信验证

    public RetMsg smsVerify(HttpServletRequest request, HttpServletResponse response, String clientMobile, String smsVerifyCode) {
        FwClient fwClient = new FwClientImpl();
        RetMsg retMsg = new RetMsg(-1, "系统异常");
        if(smsVerifyCode == null || smsVerifyCode.isEmpty()) {
            retMsg.setRet(1);
            retMsg.setMsg("输入验证码为空");
        }
        else {
            // 1 调用【短信防火墙】验证请求
            HashMap < String, Object > paramMap = fwClient.getVerifyReq(request, clientMobile); // 请求防火墙
            String jsonReq = fwClient.execReq(paramMap);
            // 报文处理
            String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
            if("REJECT".equals(smsSendRet)) {
                retMsg.setRet(3);
                retMsg.setMsg("请求过于频繁");
            }
            // 业务 TODO
            if(cacheSmsVerify != null && cacheSmsVerify.getVerifyCode() != null && !cacheSmsVerify.getVerifyCode().isEmpty()) {
                if(cacheSmsVerify.getVerifyCode().equals(smsVerifyCode)) {
                    retMsg.setRet(0);
                    retMsg.setMsg("验证成功");
                }
                else {
                    retMsg.setRet(1);
                    retMsg.setMsg("验证码错误");
                }
            }
            else {
                retMsg.setRet(-9);
                retMsg.setMsg("验证码超时");
            }
            if(retMsg.getRet() == 0) {
                // 2 调用【短信防火墙】成功结果
                fwClient.execSucc(paramMap);
            }
            else {
                // 2 调用【短信防火墙】失败结果
                fwClient.execFail(paramMap);
            }
        }
        return retMsg;
    }
    

    查看防火墙数据

    通过风控数据看板,可查看1-30天的验证情况、风控拦截情况以及验证事件触发的风控策略情况。
    进入防火墙控制台,在左侧导航栏选择【风险大盘】,进入风险大盘页面。
    在这里插入图片描述

    展开全文
  • 短信验证码防攻击、防轰炸

    千次阅读 2020-12-03 20:48:44
    短信轰炸就是指一些人用特殊的软件越过前端进行无限制获取短信验证码,对于这块需要做一些防止的措施来避免短信轰炸。 1,第一种方式,使用图形验证码进行来防止攻击 使用图形验证码时,无论安全监测进行怎么样攻击...

    短信轰炸就是指一些人用特殊的软件越过前端进行无限制获取短信验证码,对于这块需要做一些防止的措施来避免短信轰炸。

    1,第一种方式,使用图形验证码进行来防止攻击

    使用图形验证码时,无论安全监测进行怎么样攻击都可以有效的预防短信轰炸(因为使用图形验证码相对于来说就是加了一层效验)。只是有些PC端、APP以及手机银行不会用图形验证码+短信进行使用。一是不美观,二是键盘加密不适合使用图形验证码。

    2,第二种方式,使用redis进行来防止攻击

    获取短信验证码的时候,上送手机号存入redis里面,并set一个失效时间。第二次进入接口时,查询redis里面是否有失效时间,如果存在失效时间,提示获取短信验证码频繁,反之则通过并set失效时间。

    效验短信验证码时,如果比对成功,则清除reids里面的失效时间。

    代码如下:
    获取短信验证码时
    在这里插入图片描述

    效验短信验证码时
    在这里插入图片描述
    本人对于短信轰炸的浅谈,如有不足,请各位大牛指点一二,小子铭记在心。

    展开全文
  • 企业短信防火墙【新昕科技】+短信验证码【中昱维信】Java应用实例一、企业短信防火墙的实现1.1 简介1.2 第一步:获取防火墙帐号密钥1.3 第二步:下载防火墙服务器1.4 第三步:业务系统前后端接入1.5丰富可视化实时...
  • 当然有必要,这里我们来聊一个恶意短信验证的案例,通过这个案例我们就能更好理解短信验证码和图片验证码这两者的关系了。 讨论防止恶意短信验证之前,我们先来看看什么是恶意短信验证及出现的原因。 恶意短信验证,...
  • 企业短信防火墙【新昕科技】+短信验证码【中昱维信】Java应用实例一、企业短信防火墙的实现1.1 简介1.2 第一步:获取防火墙帐号密钥1.3 第二步:下载防火墙服务器1.4 第三步:业务系统前后端接入1.5丰富可视化实时...
  • 短信验证码

    2018-11-16 16:55:13
    通过Mob平台获取AppKey和AppScret,实现短信验证的功能。
  • 一、前言 随着时代的发展,验证码这种东西越来越普遍,任何一款软件都可以通过发验证码来提 高软件的安全,为了更好的达到实名制的效果,手机短信验证码开始走入了我们的生活,各种软件发送短信验证码。这个技术已经...
  • 短信接口验证码通常用于电商、手机APP、网上银行、社交论坛等互联网行业,通过短信验证码进行身份二次验证,确保用户身份真实有效。但是,最近有很多用户莫名收到各类注册短信、验证短信等,技术人员排查,发现是...
  • 短信验证码在线测试体验

    千次阅读 2017-11-01 13:52:17
    哪里短信验证码可以在线测试?哪里短信验证码可以在线体验?在选择一家短信服务商的验证码短信接口时,每个人都希望能够先在线体验一下,了解了短信验证码的到达率和速度后,确保质量没问题后才会进一步商谈价格。 ...
  • 短信验证码作为APP和网站最基础的需求,时常会被黑客恶意利用和进行短信轰炸。具体出现的状况,请看下面的截图(图片来自互联网) 如果短信验证码接口和页面不做任何限制,黑客很容易利用一些恶意的短信轰炸软件对...
  • 一个短信验证码功能引发的总结思考

    千次阅读 多人点赞 2020-01-08 22:23:53
    文章目录故事短信验证码设计总结1、时间限制2、图形验证码限制 + 时间限制3、手机号+指定时间可以发短信次数限制4、IP及Cookie限制5、短信预警机制后记 故事 昨天看到一个地址,新用户免费领取X登读书APP的14天会员...
  • 短信验证码工作原理

    千次阅读 2019-07-07 23:02:00
    短信验证码工作原理 我们的在注册各大网站或者APP的时候,经常会遇到填写验证码的情况。验证码的设置是平台为了验证用户身份而专门设置的安全机制。那么,问题来了:短信验证码在网络上的工作流程是怎样的呢? ...
  • java手机短信验证码,demo,简单粗暴,粘过去就可以用。
  • 发送取短信验证码

    2017-08-23 11:53:51
    短信验证平台使用云片,短信验证码的生成使用thinkphp。 思路 1、用户输入手机号,请求获取短信验证码。 2、thinkphp生成短信验证码,存储,同时和其他参数一起发送请求给云片。 3、云片发送短信验证码到指定手机号...
  • 短信验证码之签名和模板

    千次阅读 2017-01-24 14:11:36
    短信 短信验证码 短信平台 短信验证码平台 模板 签名 云片 短信接口 短信api
  • 大部分产品都会涉及到短信验证码的使用界面,尤其是手机产品,短信验证码几乎已经成为所有手机产品的标准。因此,防止短信被刷成了每个产品经理和开发人员关心的问题。 没有体验过短信被刷问题的产品经理可能不会太...
  • 短信服务接口安全是在开发或对接短信...部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失。那么应该如何避免短信接口被恶意调用?本文为大家介绍短信防火墙的使用方法。
  • 现如今短信验证码的应用范围极为广阔,各种网站、手机APP以及网上银行,都需要通过短信验证码完成相关业务。在使用过程中,由于对产品风控意识的薄弱,经常会出现短信被攻击盗刷的事件,引起一些不必要的损失,甚至...
  • 现如今短信验证码的应用范围极为广阔,各种网站、手机APP以及网上银行,都需要通过短信验证码完成相关业务。在使用过程中,由于对产品风控意识的薄弱,经常会出现短信被攻击盗刷的事件,引起一些不必要的损失,甚至...
  • 如何防止短信轰炸

    千次阅读 2017-03-20 09:39:51
    如何防止短信轰炸 ... 短信轰炸带来的隐患 ...①用户无任何操作情况下,莫名收到很多短信...②被短信轰炸过后,平台(APP)发送的大量短信验证码含有平台(APP)的签名,对平台(APP)带来广泛的负面影响。 ③平台(AP
  • 发送短信验证码,通常情况下为了防止短信轰炸、机器人频繁获取短信验证码等场景,在输入手机号码获取短信的时候,需要识别图形验证码,只有输入了正确的图形验证码,系统才认为不是机器人或者恶意获取短信验证码 ...
  • 我们这里使用的验证码发送是阿里云短信 ...服务商提供的接口地址,请求参数都不同,请参考服务商提供的测试...测试发送短信验证码,这里的demo可以在阿里云处复制过来 @Test public void contextLoads() { String hos

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 251
精华内容 100
关键字:

短信验证码轰炸app