浏览器二次请求了解一下

0x00 前言

我们最近开发了一个网站,因为是给学校开发的,里面难免会设计学生的一些隐私数据,而老师或者学院为了省事等一些原因,密码往往设置的会比较简单,为了防止用户密码被爆破,我们在网站上加上了验证码机制。

(PS: 验证码怎么可能会设置的如此简单:),当然是做了一波不可描述的操作啦(≧∇≦))
访问页面

0x01 验证码频繁错误?

在Windows服务器上部署之后,(啥?Windows?Windows怎么啦?Windows就是无敌,配上宇宙最强IIS,不服你来咬我啊,对,我还用的Python开发的 →_→,人生苦短,我用Python,关于Windows部署Django,可以参考我另外一篇文章)。回到正题,反馈最多的结果竟然是后台登不上去了,出现频繁的验证码错误,起初因为有些用户是可以登陆的,而且后台开发的时候我们做了一些调试,所以我认为是我的代码加密机制存在缺陷,致使部分浏览器无法正常运行那个不可描述的操作。但是,同开发组的说网站代码在未加密状态下也出现了验证码错误,引起了我的重视。
打开Firefox Develop Edition浏览器,登陆后台,验证码错误,重复10结果相同,What?!


验证码❌?!

于是打开抓包工具,看看在请求的时候是不是出了什么问题。

果不其然,Firefox在访问一次这个页面的时候,出现了两次请求,没错,就是两次,,但是浏览器之渲染了第一次请求的验证码。因为验证码是随网页同时返回的,也就是用户看到页面渲染完成之后,验证码已经被再次更新了!!!!用户拿到的是已过期的验证码,这也就是为什么验证码频繁错误的原因。同样,我们复现尝试Chrome,360安全浏览器这两款在我们学校用的比较多的浏览器,发现这个问题是很不确定的发生,也就造成了为什么有的老师没有问题,而有的老师问题很频繁。

0x03 解决方案

既然找到了问题的原因,又由于这个问题的出现是属于“上帝掷骰子”,于是我采取了一种可以彻底解决这个问题的方案,把验证码单独拿出来,就是不在跟随页面返回而返回,把验证码单独放到一个网址里面。这样,浏览器在访问这个网址的时候,验证码是单独加载的,就可以很大程度的避免出现验证码过期的问题了。

图片都被我给吃了,所以这个地方没有图片了,【尴尬】

0x04 后记

其实,在开发的时候,验证码是不应该随页面同时返回的,这并不符合开发的一些常识规范,因为之前的偷懒,出现了这样的错误,当然也发现了浏览器在部分情况下出现了多次请求的事情。

OK,本文到此为止。哼~不打个赏点个赞的嘛。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 两年的时光,沉淀了岁月,磨练了自己。 2015年8月我初入管理学院学生会,到如今,已然两年时光。忆往昔,那个时候的...
    小艺芬阅读 3,772评论 3 3
  • 【写作导引】 精彩的瞬间、美好的永恒,点亮了我们生命的星空。还记得吗?那无数次的遇见:曾经见过的那个人、那...
    芳语文阅读 5,142评论 2 5
  • 果然在吃什么和跟谁在一起,都不愿将就
    戚戚儿阅读 754评论 0 0
  • 正本书讲的是一个美国乡下白人青年,家乡随着产业转移而凋敝,家庭贫穷而破碎,妈妈吸毒,暴力,走马灯的换老公和男...
    mingjuan4偏3阅读 4,468评论 1 3