复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

js

【原创】屏蔽用户恶意获取短信验证码(js屏蔽,后台屏蔽)

作者: whooyun发表于: 2017-03-23 23:27

功能简介:

1、前端js根据倒计时获取短信验证码,点击一次按钮则调用ajax发送验证码,并disabled发送按钮,这其中存在倒计时递归调用;(刷新后获取也要限制)
2、后台需要根据用户帐号统计用户手动点击发送短信的次数,以便防止用户写程序恶意刷短信,浪费公司资源;

3、后台如果没法根据用户帐号统计判断,则建议根据用户ip和发送间隔时间端屏蔽用户的恶意发送短信行为;

/////////////////获取短信验证码 begin
    var wait = 60;//倒计时60秒
    var intervalId;//定时
    var i = wait;//倒计时递减 1
    function getVCode(){
    	i = wait;
    	var phone = $('#mobile').val();
    	var phoneBool = checkPhone();
    	if(!phoneBool){
    		return;
    	}else{
    		 $("#yzCode").attr('disabled','disabled');
    		$.ajax({
    			type:'GET',
    			url:'/password/sendVilidateCodeByPhone',
    			data:{'phone':phone},
    			success:getVCodeBack
    		});
    	}
    }
    function getVCodeBack(data){
    	if(data=='SUCCESS'){
    		 intervalId = setInterval("exit()", 1000);
    	}else{
    		alert('系统繁忙,请稍后再试!');
    	}
    }

	//递归让短信发送按钮可点击
    function exit() {
        $("#yzCode").text(i + "秒后重新发送");
        $("#yzCode").attr('disabled','disabled');
        $("#yzCode").css({ "color": "#666","cursor":"text"});
        i = i - 1;
        if (i <= -1) {
            clearInterval(intervalId);
            $("#yzCode").removeAttr("disabled");
            $("#yzCode").text("获取短信验证码").css({ "color": "#30C0CE","cursor":"pointer"});
        }
    }
///////////////获取短信验证码 end