http请求的防范和破解
2018年8月23日
http请求中可以加很多的限制,这些限制正式用户知道与不知道而已,一个接口完全防住还是还是很难的!
http请求中简单的防护,可以限制http header中的一些属性,或者加特定的cookie,例如我限制浏览器访问,我可以接口中限制user-agent,因为浏览器一般都会加user-agent.或者我指限定某种特定的user-agent能访问,如果你不知道,这个接口你就不能访问!还有referer,也是很多人喜欢应该用的东西,限定referer的来源,只有特定的referer才能访问!这些都是浏览器自动带的一些属性,有时候,我们不注意,不知道对方设否有这个限制,我们只能试!另外也有特定的header的需要添加,这样的header,一般我们都能发现,只要按对方添加的规则,添加就可以访问!所以header中有很多东西是被用来做防范接口被恶意请求的。但这些防范都是相对容易破解的,这些只是利用了一些人不懂来做的防范!实际的效果并不是太好!
另外,可以通过对接口做相应的加密,提供接口被恶意访问的情况,这里的加密接口开发者可以任意定义,所以这里如果破解难度加大了很多,通常你只能拿加密的接口反复请求,但改不了参数,因为对参数做了加密!这里如果要破解,需要在根上处理,网页的话,加密很好破解,有两种方式供大家参考,一种:就是找代码,都是js做的,一般都可以复原js,看到加密方式和密钥的,所以这种就是爬代码找把,发现加密方式后,按着方式做一遍就好啦。这个如果找到,几乎网站已经完全暴漏!webassembly的出现也许会让很多开发者把加密方式放到这里边,它这样一般就很难被反编译回去!可以了解下webassembly,现在主流浏览器都支持啦!第二种方式:就是在网页发送请求,一定取参数,所以在接口请求前,通过断点,修改发送请求的参数,这样,它拿到了后,再做加密,这里你就不用关心她用什么方式加密啦!但这种也并不是所有的接口都可以,只适应部分接口!
另外android或者iphone手机端,如果用了加密,破解难度就很大啦,因为源码都会加壳,计划还原不出来加密方式和密钥,所以只能被动的重复发送相同的信息!如果大家有好的方法可以留言!