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


浙公网安备 33010602011771号