一次代码分析以及对新版教务系统的吐槽
# 前言
昨天晚上心血来潮,刷新了一下之前自己写的看课表的 app 的课表缓存,结果发现身份认证失败,提示验证码不能为空,看来教务系统又发癫了。。。
# 问题分析
首先看了新版教务系统接口情况,果然给接口加了验证码,我真的谢谢你。。。
并且验证码内容需要作为请求参数之一,无法跳过
然后看了一下另外一个人开发的 app,发现居然能够成功登录???
当时我想着是难道他用了什么不为人知的接口,或者和学校内部人员有什么 py 交易?
但他的 app 已经在 GitHub 上开源了,所以 py 交易什么的完全没必要,应该是用了某个不为人知的没有验证码的接口。(我之前用的接口就是这么来的,无意中在易班上发现的)
于是我直接去翻他的源代码,看看到底是什么神秘接口。
粗略看了一下源代码,发现和我写的接口好像没什么不同,就是多了一个验证码图片的请求环节,但是并没有其他的信息。
然后我又抓了一下包,发现请求里多了一个 RANDOMCODE
参数,在源代码里搜索了一下发现原来是自己看错了代码文件,看到第一版接口文件去了(可见教务系统发了多少次癫,天天改接口。。。我之前也被折磨得够呛)
然而当我满怀期待的浏览代码,想知道到底是什么接口时,发现了一个 ocr
对象。。。
很好,验证码的尽头是 OCR。。。
最后花了一点时间看了一下,就是用 OCR 来解决验证码问题。。。
属于是返璞归真了
我只想说是哪个聪(sha)明(bi)玩意没事给接口加什么验证码,真想狠狠关爱他。
本来以为终于可以把 1.0 版本发布了,结果给我整这一出,如果要加 ocr 功能的话那可能就需要等到考试之后了,现在还要忙着复习没有那么多时间学(是的,边学边做)。
# 后记
就是想吐槽一下这逆天的新版教务系统,全是槽点,都什么年代了,课表的 response 还是和 html 夹在一起的,而且学期课表却是 json 返回,但周课表就是夹 html,不知道是哪年的屎山代码,主打一个祖宗之法不可变是吧。。。
而且整个信息传输还没有使用 TLS 加密,就用自己设计的一个加密 js 对密码进行加密,我不好评价。
Use this card to join MyBlog and participate in a pleasant discussion together .
Welcome to GoodBoyboy 's Blog,wish you a nice day .