短信验证时当点击获取验证码按钮后隔60后才能点击

看了网上很多例子都是用js实现的,但是我发现如果js实现的话,当我刷新整个页面时,获取验证码的按钮也会被刷新。
比如我进入页面,此时按钮是可点击状态,然后我点击此按钮获取验证码,这时按钮进入不可点击状态,并且开始进入倒计时,但是当我在按钮不可点击状态时按f5刷新整个页面,这时按钮又会变为最开始的可点击状态。
想请教一下各位大佬,有什么方法可以解决这个问题。

3个回答

服务器必须二次判断,可以用session/数据库记录下上次发的时间,加上判断。
稍微有点技术的最业余的攻击者,也完全可以突破任何前端的限制,直接通过发包提交请求。

可以用localStorage或cookie保存上次点击按钮的时间。
刷新页面后,读取localStorage或cookie保存的时间。与当前时间比较。相差小于60秒就让按钮进入不可点击状态。

当然前端这种限制并不保险,localStorage或cookie保存的时间用户也可以通过浏览器中设置删除,或者用浏览器的开发者工具把按钮改为可点击状态。
所以最好的限制还是应该在服务器端进行。

点击发送验证码的时候,如发送成功,数据库记录一条数据,,,下次在点击发送验证码的时候通过手机号验证一下时间是否超过一分钟,不超过就报错,超过就发送

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!