weixin_38860401
可以简单点
采纳率87.5%
2018-11-22 14:22 阅读 1.5k

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

5

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2018-11-22 18:13

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

    点赞 评论 复制链接分享
  • jslang 天际的海浪 2018-11-22 14:57

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

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

    点赞 评论 复制链接分享
  • hometing218 hometing218 2018-11-23 07:27

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

    点赞 评论 复制链接分享

相关推荐