如何防止短信攻击

加密字符串sms_token
首先生成一个加密token,包含以下内容:
  1. 时间戳
  2. 设备id,优先通过前端的能力(比如uniapp自带的功能)获取设备id,如果获取不到则前端自己生成,然后存在本地(可以取为time这样,值采用时间戳)
加密方式:
des+盐(盐暂时固定一个,后面有必要可以从服务端获取,服务端保存一下设备id对应的盐)
如果后面被破解了,可以尝试更换加密方式为rsa,并且混淆前端代码
 
判断逻辑:
服务端拿到加密的字符串,尝试解密,解密失败则报错,解密成功后:
  1. 拿到时间戳,判断时间是否在30秒以内(这个是为了防止攻击的人重复使用sms_token)
  2. 拿到设备id,判断该设备的当日发送短信次数,如果超过5次,则禁止发送(这是为了防止30秒内用同一个sms_token连续攻击,以及用不同手机号攻击)
 
流程图
 
0
 
posted @ 2024-09-19 17:01  leecoders  阅读(22)  评论(0)    收藏  举报