出于安全性考虑,防止数据被恶意窃取,当在接口中包含某些敏感信息时加密显得尤为重要,一旦敏感信息被泄露,后果不堪设想
明白了,感谢
防爬虫,然而并没什么软用
明白了,感谢
我认为,保护服务器端的数据,有这么几个关键点:
1.不能对使用体验产生影响,这就排除掉了诸如每次接口调用都要求用户输入验证码这样的做法
2.接口调用的网络交互需要无规律可循,比如article/1 –> article/1000 这样的接口就太容易被其他人爬走了
3.要严格意义上阻击爬虫,需要每一次网络请求都是不可重放的,这样才能避免其他人通过监听网络交互并重放来爬取数据
4.对服务器端编码不产生太大影响,如果要对服务器端伤筋动骨的大改,肯定是要不得的
通常,我们会采用一种简单有效的方法:对服务器返回的数据加密来解决,但是,这种做法并没有解决上面所提到的第二点,接口调用的时候url的规律性太强,网络监听一下数据,就很容易找到url地址的规律了,加密的破解也很简单,反编译直接定位到解密函数,拿到密钥。当然,在强大的反编译工程面前,一切努力都是徒劳的,不管你用何种方法,都是可以把中间的逻辑找到并模拟成一个客户端来爬数据的。
我下面就提出一个破解更加复杂一些的方法,在客户端产生请求时,对接口url进行RSA加密处理。
明白了,感谢
接口地址加密?是param和return加密吧