【爬虫-反爬虫】系列一:反爬虫之签名(6)

反爬虫之签名(6)

本讲介绍的是一种比较麻烦的反爬虫策略:请求签名。


请求签名


请求签名指在请求url中增加一个sign字段,通常取值为自定义字段的md5校验码。


前面介绍的反爬虫策略基本上都有规律可寻,但签名很让人头疼,因为必须硬手段破解,也就是硬着头皮去调试代码,找出sign生成算法,然后再模拟该算法生成合法请求进行数据爬取。


针对这种加密,网页版还好说,毕竟js代码可以查阅与调试,只是非常麻烦。但在app中就非常麻烦了,涉及到反编译工程。


举例-app请求sign


打开手机app,使用Fiddler作为代理进行数据包抓取,如下图所示:




看到这里你应该明白,app请求也不是无法捕获,关键还是看其是否使用了http协议上图是一个app的http请求,图中body部分是post请求体,颜色加深部分就是sign字段,也是今天的主题。


如果你看到请求querystring或post body中存在sign字段,那么心里就应该疙瘩一下,因为抓取难度会上升很多。


下图展示的是sign字段的一个常规生成算法



基本规则都是组装字符串,然后md5加密。


常规方法


到目前为止,sign加密应该算是最麻烦的反爬虫手段,尤其是app请求的sign加密,列出一些我对网页版和app版的sign破解看法。


网页版


sign算法一般隐藏在js代码中,所以需要调试js代码。不用说,js代码肯定是格式化的,所以你能看到的基本就是a,b,c,d这类变量。


破解方法一般分为两步:


  1. 找到发出请求的地方。


  2. 使用浏览器调试该部分的相关变量。


最后能不能找出来就看个人动手能力了。


app版


难度高低不一,对于安全措施较高的app,会进行app代码本身进行安全性校验,所以很难反编译后再修改代码进行调试。不过依旧可以反编译得到源码,进行源码阅读,但由于难以调试,所以难度非常大。


关于app的反编译,可以在网上搜到具体方法,此处就不赘述了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值