验证码的验证核心原理
来源:6-4 实现验证码验证
慕勒3498910
2021-09-27 23:28:06
老师,你好!关于验证码的校验逻辑这边,我有些疑惑,就是比如说,我在浏览器中打开多个"用户登陆"的页面,比如说:有A,B,C,3个同时打开的登陆页面,那么验证码自然在3块页面上也会生成不同的3组,那么如此一来,我的疑问就是说,如果,我选择其中的A页面来进行登陆操作的时候,将验证码vcode传递到了处理验证程序那边,使用client.validate_code(vcode)方法来进行验证,是什么原理导致比对的双方正好是对应了均为A页面的情况,而不是说传递的vcode去错误地对应B或者C页面上的所生成的验证码呢?因为仅仅从各个验证码的生成逻辑中可以看到,后台生成验证码,是通过SESSION将生成的验证码内容进行保存,但是SESSION_KEY是相同的'verify_code',所以,这块具体的原理,我这边就不是很了解了,还望指导一下。
1回答
时间,
2021-09-28
同学,你好!同时打开3个登录页面(A,B,C)时,session会保存最后一个请求中的验证码,在去A页面中登录时,验证码是错的,不能登录成功。
例:请求顺序为A,B,C,在回到A页面中登录时(不重新请求),可以看到在验证时是C页面中生成的验证码。若重新刷新A页面即会生成新的请求,session保存的也会是当前页面中的验证码
祝学习愉快!
相似问题