如何正确的保存验证码

2017-02-11 11:24:13 +08:00
 ChrisTang

在京东某登录页面,需要填写验证码,登录页面每次请求均会生成一个如下的 randomId 。但每次访问时其二维码均会随机变化。也就是说,当访问一次登录页面时,出现下述 randomId ,然后显示一个验证码,当程序获取到这串 ID 后,向其发起请求下载验证码图片,已经和第一次向登录页面请求后收到的图片不同。

https://oauth.jd.com/CheckCoder?randomId=7.140602943075475E8_1486783086179

各位大佬有好的解决办法么?在暂时不考虑 selenium 之类的工具情况下。

3234 次点击
所在节点    问与答
8 条回复
nanlong
2017-02-11 11:36:40 +08:00
截图
m939594960
2017-02-11 11:55:53 +08:00
randomId 应该是可以随便写的,是防止缓存用的吧
popok
2017-02-11 13:26:18 +08:00
@m939594960 对,一般都是这样,真正绑定验证码的一般都在 cookie
shiny
2017-02-11 16:35:06 +08:00
感觉 lz 应该没做过验证码?
ChrisTang
2017-02-11 16:56:21 +08:00
@nanlong selenium 类工具可以实现截图,但这里暂不考虑这种方式。

@popok 但通过 Charles 抓包发现, randomid 确实是需要向服务器提交的。
ChrisTang
2017-02-11 16:56:43 +08:00
@shiny 小白,对验证码知之甚少,还望赐教
shiny
2017-02-11 17:21:45 +08:00
@ChrisTang 一般情况下做验证码,是在生成图片的时候将正确结果写入 SESSION ,同时生成图片。后面 randomId 用于防止缓存图片。

所以你的情况应该只下载一次到本地;后面再要使用此图片要从本地图片读取;验证过一次后,再重新下载验证码。
ChrisTang
2017-02-11 20:43:11 +08:00
@shiny 感谢!直接把整个页面保存到本地再读取图片的方式确实可行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/339728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX