高阶爬虫:破解 Instagram 签名加密算法「一」

阅读本篇预计需要 5 分钟

分享之前,我想和大家说件事:

“ 大家应该也看到了我最近更新的频率很低,原因就不说了。不过这种情况只会持续一段时间而已,如果要关注我的分享可以加我的微信 mcx1469 ,当然加我的时候注明下个人介绍。”

正文

Sign 算法我相信大家并不陌生,通俗的来说就是一种签名算法。在我们访问的很多 Http 请求中为了保证请求的安全性都会追加一种签名。

当然这种 Sign 算法的存在也是有必要的,一个很复杂、很精密的 Sign 算法能很大程度上提高服务的安全性。例如微信朋友圈的接口,现在几乎没人能破解。

所以今天我要分享的内容是:破解一个国外大厂的 Sign 算法。

当然我会分步骤的进行分享,目的是为了对各位读者在之后的技术中能有所帮助。

这里我就不绕弯子了,这个所谓的国外大厂其实就是 Facebook 。 而我进行破解的 Sign 算法则是 Instagram 的一套加密算法。后文中将由 Ins 来代替。

  • 1、为什么要破解这套加密算法

很多玩 Ins 的朋友应该都知道,无论是在 App 上 还是 PC 上都无法进行保存Ins 图片的操作。

这是因为 Ins 为了保护原创所以在 App 和 JS 上都动了手脚,不允许有保存操作。

对于很多技术人来说:越是不让我做什么,我越会去做什么。

所以市场上就出现了形形色色的关于 Ins 保存图片的小工具,这个我就不分享了。感兴趣的可以去搜一下,一大堆。

其实保存某张图片的原理很简单,就是 图片链接 + ?__a=1 就会得到一段 JSON 。

但是。。。

如果我要获取到某个 Ins 明星的所有照片,虽然我也可以通过 主页链接 + ?__a=1 来拿到,但问题是这种操作只能在你登录的状态。

我们可以来验证下:

CASE 1、 在登录 Ins 的情况下,获取 JSON 数据

a:打开 Ins 上一个明星的主页,注意这段链接

image

b: 在这个主页的链接之后,我们增加 ?__a=1 来看看

image

可以很明显的看到有一段 json ,而这段 json 正是 Wade 主页的一部分图片。

CASE 2、注销 Ins 的登录再来试试

image

在未登录的状态下,同样可以访问到 Wade 的主页。但这时候我们再来试试获取 JSON 数据。

image

网页出错,请求被拒绝。很明显我们已经没有权限去读取这段JSON。

所以通过这么一步步验证之后,我们会发现 Ins 的个人主页数据并不会这么简单的被获取到。

插个题外话,其实在 FB 的 ”隐私门“ 之前这种方式还是可以正常请求的,但自从那件事之后接口就被 Ban 了。

这也正式的引出了我今天的主题,如何在未登录的状态下获取 Ins 个人主页的图片信息。

  • 2、*分析思考+实践

很多人应该都注意到了在未登录情况下,我们至少还可以在浏览器上访问到这些数据。

而且我还可以告诉你,上滑可以分页拿到所有数据。

因此,这足以证明我们是完全可以通过代码来拿到这些数据的。至于怎么去拿,就需要我们一步步分析。

很多人可能会说用 SeleniumJS 就能解决,但问题是效率太低。所以这种方式我们不考虑,我们需要直接调用接口来获取。

这时候会用到抓包工具,我个人用的是 Charles 。

a: 打开抓包工具,抓到主页的数据。

image

可以看到,这就是 wade 的主页数据。

b: 找到我们需要的数据

那么我们需要的数据又在哪,其实很简单,我们在浏览器上打开 wade 主页之后随便找一个 字符串或者数字进行复制。

然后在抓包工具中进行搜索,就能找到它的位置。

image

例如我通过查找 Wade 的”个人介绍“ 成功的找到了抓包工具中的数据位置。

我们会发现其实这些数据就是在之前抓到的网页里面,我们将这个网页复制出来在文本编辑器中打开看看。

image

再次搜索之后,我们发现这些数据保存在一个命名为 window._sharedData 的 JS 字符串中。

我们可以将这段内容复制出来,然后用 JSON 格式化工具进行格式化会发现这就是一段 JSON 数据,而且也正是我们需要的。

image

细心的网友会发现,其实这段内容的位置是固定在 sharedData 里面的,因此我们可以通过正则表达式来匹配到:

image

这样我们就手动成功的通过各种复制拿到了一段数据。

不过这段数据并不是完整的,而是主页数据中的第一页。后续还有核心的分页操作。

(考虑到内容太长,核心的分页逻辑会在下一篇进行分享)

通过这一步步分析之后,我们得到了一个核心数据就是这段正则表达式。这时候我们可以通过代码来验证下:

image

如上我们将这段正则应用到代码中,执行之后:

image
  • 3、*总结

到这里,我们就成功的通过代码来拿到了主页的部分数据。

大家可以看到这段代码很简单,但要写出这段代码是需要经过一步步的分析之后才能产生的。

其实这篇文章中讲到的只是一些常规数据的获取方式,还是很入门很入门的阶段。

上面拿到的数据也只是一部分,确切的说只是主页中的第一页数据,也就只有 10 来张图片信息。

而要获取到更全的数据,就需要分析其中的分页逻辑,也正是 Sign 算法的应用之处,也同样是我们要核心破解的点。

聚焦到接口上,其实就是:

image

而 Sign 字段则是 query_hash。

由于考虑到内容太长,接下来的内容会在下一篇进行分享。

谢谢大家的阅读

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容