避免频繁发送短信验证码
存在的问题:
- 虽然我们在前端界面做了60秒倒计时功能。
- 但是恶意用户可以绕过前端界面向后端频繁请求短信验证码。
解决办法:
- 在后端也要限制用户请求短信验证码的频率。60秒内只允许一次请求短信验证码。
- 在Redis数据库中缓存一个数值,有效期设置为60秒。
1. 避免频繁发送短信验证码逻辑分析

2. 避免频繁发送短信验证码逻辑实现
1.提取、校验send_flag
send_flag = redis_conn.get('send_flag_%s' % mobile)
if send_flag:
return http.JsonResponse({'code': 400, 'errmsg': '发送短信过于频繁'})
2.重新写入send_flag
# 保存短信验证码
redis_conn.setex('sms_%s' % mobile, 300, sms_code)
# 写入send_flag
redis_conn.setex('send_flag_%s' % mobile, 60, 1)