精华内容
下载资源
问答
  • 短信服务接口安全是在开发或对接短信接口时尤为关注的问题。部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失。...本文为大家介绍短信防火墙的使用方法。

    短信服务接口安全是在开发或对接短信接口时尤为关注的问题。部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失。那么应该如何避免短信接口被恶意调用?本文为大家介绍短信防火墙的使用方法。#短信防火墙#

    ➤ 如何使用风控防火墙

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

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

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

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

    第三步:业务系统前后端接入

    web 前端接入:

    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;
    }
    

    PHP

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

    nxt_ini.php (存放位置:"\nxt_inc") 修改参数($GLOBALS
    [“fireWareUrl”])–>$GLOBALS[“fireWareUrl”]=“http://localhost:7502”

    • 短信下发
    require_once $_SERVER['DOCUMENT_ROOT'].
    "/nxt_inc/nxt_client.php";
    /**
     * 发送短信
     * @param $mobile
     */
    public
    function send(string $mobile) {
        $fwClient = new ClientApi();
        // 获取下发短信报文
        $paramMap = $fwClient - > getSendReq($phone);
        // 执行下发短信请求 
        $jsonReq = $fwClient - > execReq($paramMap);
        $fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
        if("REJECT" != $fwRet) {
            // 发送短信业务 TODO
            if(发送成功标记) {
                //  下发短信成功
                $fwClient - > execSucc($paramMap);
            }
            else {
                //  下发短信失败
                $fwClient - > execFail($paramMap);
            }
        }
    }
    
    • 短信验证
    /**
     * 短信验证
     * @param $mobile
     */
    public
    function smsVerify(string $mobile) {
        $fwClient = new ClientApi();
        // 获取短信验证报文
        $paramMap = $fwClient - > getVerifyReq($phone);
        // 执行短信验证请求 
        $jsonReq = $fwClient - > execReq($paramMap);
        $fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
        if("REJECT" != $fwRet) {
            // 验证短信业务 TODO
            if(验证成功标记) {
                //  验证短信成功
                $fwClient - > execSucc($paramMap);
            }
            else {
                //  验证短信失败
                $fwClient - > execFail($paramMap);
            }
        }
    }
    

    第四步:实时监控

    防御拦截数据尽收眼底,实时查看当日数据详情与近期风险趋势。 通过风控数据看板,可查看1-30天的验证情况、风控拦截情况以及验证事件触发的AI模型情况。

    进入防火墙控制台,在左侧导航栏选择【风险大盘】,进入风险大盘页面。

    在这里插入图片描述

    以上就是使用短信防火墙的全部过程,如需了解更多请关注新昕科技官网:www.newxtc.com

    展开全文
  • 基于android 4.1系统源码添加的一个新功能:来电防火墙和短信防火墙。 在应用层添加一个apk将拦截到的电话和短信保存到新的apk中,电话拦截的主要代码在应用层处理,短信拦截的主要代码在frameworks层中处理
  • Android平台手机来电及短信防火墙关键技术研究.主要针对现在的android平台,开发来电、短信防火墙
  • 短信防火墙

    2016-05-30 21:18:49
    public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, ... //拿到短信的信息 //短信内容封装在intent中 Bundle bundle = intent.getExtras(); //以pdus
    public class SmsReceiver extends BroadcastReceiver {
    
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		//拿到短信的信息
    		//短信内容封装在intent中
    		Bundle bundle = intent.getExtras();
    		//以pdus为键,取出一个object数组,数组中的每一个元素,都是一条短信
    		Object[] objects = (Object[]) bundle.get("pdus");
    		
    		//拿到广播中的所有短信
    		for (Object object : objects) {
    			//通过pdu来构造短信
    			SmsMessage sms = SmsMessage.createFromPdu((byte[])object);
    			if(sms.getOriginatingAddress().equals("138438")){
    				//阻止其他广播接收者收到这条广播
    				abortBroadcast();
    //				SmsManager.getDefault().sendTextMessage(sms.getOriginatingAddress(), null, "你是个好人", null, null);
    			}
    //			System.out.println(sms.getMessageBody());
    			
    		}
    
    	}
    
    }


    <uses-permission android:name="android.permission.RECEIVE_SMS"/
    
    <receiver android:name="com.itheima.smslanjie.SmsReceiver">
    	<intent-filter android:priority="1000">
    		<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    	</intent-filter>
    </receiver>



    展开全文
  • 短信防火墙系统发送短信广播时,是怎么把短信内容存入广播中的,我们就怎么取出来如果短信过长,那么发送会拆分多条短信发送,那么短信广播中就会包含多条短信.4.0之后,广播接收者所在进程如果从来没启动过,那么广播接收...

    短信防火墙

    系统发送短信广播时,是怎么把短信内容存入广播中的,我们就怎么取出来

    如果短信过长,那么发送会拆分多条短信发送,那么短信广播中就会包含多条短信.

    4.0之后,广播接收者所在进程如果从来没启动过,那么广播接收者则不会生效.

    4.0之后,如果系统自动关闭广播接收者所在进程,再广播action匹配时,系统会启动该广播接收者所在进程,如果是用户自己关闭,则此进程会冻结,直到用户自己手动启动该进程.

    public class MainActivity extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    }

    }

    public class SMSReceiver extends BroadcastReceiver {

    @Override

    public void onReceive(Context context, Intent intent) {

    System.out.println("接收到短信111");

    //短信内容是封装在intent

    Bundle bundle = intent.getExtras();

    //以 pdus为键值,取出一个object数组,数组中的每一个元素,都是一条短信

    Object[] objectses = (Object[]) bundle.get("pdus");

    //拿到广播中的所有短信

    for (Object object : objectses) {

    // 通过pdus来构造短信

    SmsMessage sms = SmsMessage.createFromPdu((byte[]) object);

    //发送的号码

    System.out.println(sms.getDisplayOriginatingAddress());

    //内容

    System.out.println(sms.getMessageBody());

    String phone = sms.getDisplayOriginatingAddress();

    if(phone.equals("110")){

    //阻止其他的广播接收者收到这条广播

    abortBroadcast();

    }

    }

    }

    }

    package="com.example.yhb.smsfilter">

    android:allowBackup="true"

    android:icon="@mipmap/ic_launcher"

    android:label="@string/app_name"

    android:theme="@style/AppTheme">

    android:name=".MainActivity"

    android:label="@string/app_name">

    android:name=".receiver.SMSReceiver"

    android:enabled="true"

    android:exported="true">

    短信防火墙要点

    广播接收者的优先级: android:priority="1000" 取值范围: -1000-1000 1000为最高

    短信广播action,android已经主动屏蔽,代码中不会提示,只能死记:

    展开全文
  • 短信服务接口安全是在开发或对接短信接口时尤为关注的问题。部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失。...本文为大家介绍短信防火墙的使用方法。

    短信服务接口安全是在开发或对接短信接口时尤为关注的问题。部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失。那么应该如何避免短信接口被恶意调用?本文为大家介绍短信防火墙的使用方法。#短信防火墙#

    ➤ 如何使用风控防火墙

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

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

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

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

    第三步:业务系统前后端接入

    web 前端接入:

    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;
    }
    

    PHP

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

    nxt_ini.php (存放位置:"\nxt_inc") 修改参数($GLOBALS
    [“fireWareUrl”])–>$GLOBALS[“fireWareUrl”]=“http://localhost:7502”

    • 短信下发
    require_once $_SERVER['DOCUMENT_ROOT'].
    "/nxt_inc/nxt_client.php";
    /**
     * 发送短信
     * @param $mobile
     */
    public
    function send(string $mobile) {
        $fwClient = new ClientApi();
        // 获取下发短信报文
        $paramMap = $fwClient - > getSendReq($phone);
        // 执行下发短信请求 
        $jsonReq = $fwClient - > execReq($paramMap);
        $fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
        if("REJECT" != $fwRet) {
            // 发送短信业务 TODO
            if(发送成功标记) {
                //  下发短信成功
                $fwClient - > execSucc($paramMap);
            }
            else {
                //  下发短信失败
                $fwClient - > execFail($paramMap);
            }
        }
    }
    
    • 短信验证
    /**
     * 短信验证
     * @param $mobile
     */
    public
    function smsVerify(string $mobile) {
        $fwClient = new ClientApi();
        // 获取短信验证报文
        $paramMap = $fwClient - > getVerifyReq($phone);
        // 执行短信验证请求 
        $jsonReq = $fwClient - > execReq($paramMap);
        $fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
        if("REJECT" != $fwRet) {
            // 验证短信业务 TODO
            if(验证成功标记) {
                //  验证短信成功
                $fwClient - > execSucc($paramMap);
            }
            else {
                //  验证短信失败
                $fwClient - > execFail($paramMap);
            }
        }
    }
    

    第四步:实时监控

    防御拦截数据尽收眼底,实时查看当日数据详情与近期风险趋势。 通过风控数据看板,可查看1-30天的验证情况、风控拦截情况以及验证事件触发的AI模型情况。

    进入防火墙控制台,在左侧导航栏选择【风险大盘】,进入风险大盘页面。

    在这里插入图片描述

    以上就是使用短信防火墙的全部过程,如需了解更多请关注新昕科技官网:www.newxtc.com

    展开全文
  • 网站原来的设计是没有图形验证码的,后来技术说加上一个...但有一次短信公司电话说我们短信发送量异常, 可能被人攻击了, 所以我们技术突击改为更复杂带干扰的验证码,安全性应该没问题了,不过用户体验不是太好。
  • IOS应用源码之【应用】-pysl-iPhone电话短信防火墙.rar
  • 信安易卫士2.1新版免费+手机来电短信防火墙+监控流氓软件.pdf
  • M8手机短信防火墙的实现原理和方法的实例代码
  • 基于android4.1系统源码添加的一个新功能来电防火墙和短信防火墙。在应用层添加一个apk将拦截到的电话和短信保存到新的apk中电话拦截的主要代码在应用层处理短信拦截的主要代码在frameworks层中处理.rar,太多无法...
  • android85 短信防火墙

    2017-11-22 12:41:00
    ###短信防火墙 * 系统发送短信广播时,是怎么把短信内容存入广播的,我们就只能怎么取出来 * 如果短信过长,那么发送时会拆分成多条短信发送,那么短信广播中就会包含多条短信 * 4.0之后,广播接收者所在进程如果...
  • 小豆社保:最近业务增长...新昕科技:使用短信风控防火墙+短信路由 1. 可以确保短信验证码不被盗刷, 2. 云控制台可以实时展现发送短信的详细数据, 3. 短信路由可以确保短信服务商业务异常时无缝切换备用短信服务商
  • 企业短信防火墙【新昕科技】+短信验证码【中昱维信】Java应用实例一、企业短信防火墙的实现1.1 简介1.2 第一步:获取防火墙帐号密钥1.3 第二步:下载防火墙服务器1.4 第三步:业务系统前后端接入1.5丰富可视化实时...
  • 企业短信防火墙【新昕科技】+短信验证码【中昱维信】Java应用实例一、企业短信防火墙的实现1.1 简介1.2 第一步:获取防火墙帐号密钥1.3 第二步:下载防火墙服务器1.4 第三步:业务系统前后端接入1.5丰富可视化实时...
  • 在用户登录、注册环节,为了防止机器攻击,一般要通过短信验证来解决,但引入短信... 新昕科技在交易反欺诈核心上, 通过AI快速学习机制,结合国际领先的设备指纹技术,首次推出无需图形验证码机制的企业短信防火墙
  • Android初级教程短信防火墙

    千次阅读 2016-06-15 16:58:36
    如果你有女神,而且有情敌的话,你看到这篇文章会有一种窃喜的感觉。 需求:对情敌的号码进行拦截,让女神手机永远收不到它的号码。...运行之后,当情敌想给女神发短信的时候,她是收不到情敌的短信的。
  • 基于Android系统的短信防火墙设计 基于贝叶斯理论
  • Android is an open-source operating system based on Linux, which created by google and the Open Handset Alliance. And it was widely used in smart phones and 3G tablet computer. With the popularity of ...
  • Android_07_短信防火墙

    2015-10-21 12:38:57
    //拿到广播中的所有短信,因为有的时候,一条短信很长, 需要做多次发送,所以就产生了多条短信的情况; for (Object object : objects) { //通过pdu来构造短信 SmsMessage sms = SmsMessage....
  • android短信电话防火墙

    2014-08-28 11:18:58
    界面比较简单,拦截黑名单用户来电及短信,拦截含有关键字的短信,关键字可添删

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,440
精华内容 4,176
关键字:

短信防火墙