如何防止短信验证被盗刷

      在php聊天群里,有位同学说 他们的5000块钱的短信,两天被刷完了!,问群里大佬怎么办!

就一般的防止短信验证盗刷而言(通过修改手机号修改验证码),我们通常的防止短信被滥发,就是

(1)限制每个手机号的发送次数

类似:

//检查发送次数
$key = "mobileReg_sms_send_times:" . $mobile . ":" . date("Ymd");
$smsSendTimes = Yii::app()->redis->get($key);
if (empty($smsSendTimes)) {
    $smsSendTimes = 0;
} else if ($smsSendTimes >= 10) {
    $this->_end(1, '每个手机号每天最多能发10条短信!');
}
但是如果人家通过修改手机号呢,这时候我们就引入了通过ip,来限制ip

(2)通过ip限制

//检查IP发送次数
$keyIp = "mobileIpReg_sms_send_times:" . PublicFunHelper::getIP() . ":" . date("YmdH");
$smsIpSendTimes = Yii::app()->redis->get($keyIp);
if (empty($smsIpSendTimes)) {
    $smsIpSendTimes = 0;
} else if ($smsIpSendTimes >= 5) {
    $this->_end(1, '您获取短信验证过于频繁,请稍后再试!');
}

(3)验证 检测同一个短信发送验证时间

//检查是否相隔60秒后发送
$limitKey = "mobileReg_sms_send_limit:" . $mobile;
$smsSendLimit = Yii::app()->redis->get($limitKey);
if ($smsSendLimit) {
    $this->_end(1, '60秒后才能重新发送短信验证码!');
}

以上这3个条件筛选对于一般的刷短信防护应该是已经够了!但是群里那位同学这3个验证条件都加了,依然还是被刷爆了,接下来又该怎么处理呢?(攻击的机制是通过修改手机号)

群里各位给出的方案

1 提交修改是再加一个验证码的 验证(个人比较看好这种方案);

2 限制同一个账户 一天修改手机号的次数

3 在修改之前,再重新登录用户名和密码

感谢群里各位大佬。。。。



                
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值