先来普及下啥是个逆向!
作为前端程序员,每天吭哧吭哧写代码,最后把网站发布上线,这个过程属于「正向」开发,与之相对应的是「逆向」,逆向干的事情就是把线上的代码进行还原,也就是“没有源码”的情况下反推代码的执行逻辑。
那学习逆向有什么用?
功能实现调研
一天,PM 对你说:“某网站的功能挺好的,你也实现一个同样的功能吧”。但是你对这个功能的实现毫无思路,这时可以利用逆向的手段来看一看该如何实现。
窥探使用的技术手段
通过逆向也可以获取到某网站使用的第三方库,比如使用的框架是 Vue 还是 React,打包工具是 webpack 还是其它的。某些主要的功能是不是通过一些第三库实现的。
赋能正向开发
逆向需要你具备一些硬性要求,比如需要对浏览器的原理掌握透;深入掌握 JS 的执行原理;掌握网络请求的整个过程,以及各种网络工具的使用,网络原理。这些硬性要求,会促使你更深入地掌握前端的技能,在前端领域中脱颖而出。一旦掌握逆向调试技巧,对于正向开发时遇到的问题也能够快速地定位。
爬虫
这是前端逆向应用最广的一个方向,也是在商业化方向表现最好的技术手段,是获取第三方网站数据的重要手段。
自动化脚本
通过逆向研究某个业务流程,可以把该过程脚本化,实现业务自动化,比如自动抢票。
反编译