java短信判断长度_接收短信验证码条数限制(java发送短信验证码限制)

本文介绍了如何使用Java和Redis限制手机号每天接收验证码的数量,以防止恶意攻击导致大量短信费用。通过检查Redis中的key来判断是否超过设定的限制(默认10条),并设置key的过期时间为当天结束时,确保每天清零。
摘要由CSDN通过智能技术生成

今天是个周六,还在苦逼加班的我对那些休周末的同行表达羡慕嫉妒,对那么同样加班的同行共勉吧~~

整理了下这周的工作进度。除了项目试上线以外也就是补充补充之前遗留下的小问题了。这篇文章就是说手机号每天接受验证码的条数限制。

我们现在的好多程序注册需要手机号并且发送验证码来验证手机号的真伪。以前常用的就是阿里的发送短信的功能(感觉这个真的很常用,阿里的产品还是值得信赖的)。不过我们这个项目采用的是极光的短信功能。不过这个其实不重要,因为我们来限制一个手机号 一天可以发多少短信和短信平台无关。我这里是因为老板说听说某某程序员说受到过这样的攻击,不到一个小时一个产品发出去几千块钱的短信费用。而且我另一个朋友也说过如果不加以限制可能他一个多线程跑过去我们平台的短信费用立刻欠费。

这里说一下具体的思路:因为确实有时候我们在注册的时候会发送各种意外。比如当时信号不好啊,或者莫名其妙的手机短信没收到啊不可避免的,所以一个人一天只能发一条短信肯定也不合理。然后我们老板目前设置的是一个人一天能接收的验证码是10条(多了少了是可以设置的。不过我接下的例子也是一个手机号码一天可以接收十条验证码)。我这里采用的是存redis来实现这一个功能的(感觉这里数据库也可以实现,但是不如reids好。最近敲喜欢redis的说,用起来得心应手,哈哈)。就是每次调用发送验证码这个接口都会判断手机号码是否在redis中存为key了。如果没有则创建一个key为手机号码value是1.因为redis中不支持数字所以我是1+“”将其变为了string类型。如果redis中已经有这个key了则将此key的值取出来加1再存进redis中。这里在做的时候过期问题有一点小纠结。最后想明白了。我们老板的要求是每天。也就是这个key-value的存活期应该是到今天结束。所以我又专门做了个小工具类来获取当前时间到今天结束时间(也就是23点59分59秒999毫秒+1毫秒的时间)的毫秒数。并将此作为这个key的到期时间的(关于这个我是给予我的实

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值