有人知道关于微信朋友圈分享外链时,链接附带 nsukey 参数的含义吗?

2016-10-12 11:57:20 +08:00
 lution

是这样的,昨天我的一个页面貌似被分享到了微信的朋友圈,然后获得了大量的点击,形如

/abc?from=timeline&isappinstalled=0

开始时链接只是附带了 from 和 isappinstalled 这两个参数,含义很好理解,这些请求所附带的 User-Agent 和 ip 看起来也都是正常的,能看到设备型号、系统版本之类的。这个我自己分享到朋友圈后可以复现

对于不带 nsukey 参数的请求来看,首先应该可以肯定都是真实点击, 300 多个来源 IP 中,绝大多数都来自北京(北京某高校 IP ,北京市教育网 IP ,北京市运营商应用在基站/公共 WIFI 的 IP ),基本每个 IP 只访问了一次,从 User-Agent 来看都是从微信的朋友圈里面点进来的,可以理解为,分享人和朋友圈好友基本分布在北京。

随着访问量的增加,后面很大一部分的请求在上面的基础上又额外附带了一个新的参数, nsukey ,并且基本上每个请求所附带的 key 并不相同,格式是这样的。

LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr0i1aK3QCYeNc34KOIEyq6drDg76FyBc0q2FahJE3nMLQ3D3D
LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTrm5NWAS0Xj41WtngOY0oJZhRc0zIiw4tP36GQcifKPgw3D3D

带有 nsukey 参数的请求看起来稍微有些奇怪。首先,几百个请求的 User-Agent 的请求都是相同的,固定为

Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/30.0.1599.12 Mobile/11A501 Safari/8536.25 MicroMessenger/6.1.0

而且来源的 100 多个 IP 是分布在若干个机房里的多组 IP ,每个 IP 请求了数次到数十次不等,而且机房并不在北京,有上海的,有深圳的,选三组举例

     38 117.185.24.135
     30 117.185.24.151
     32 117.185.24.152
     34 117.185.24.243
     45 117.185.27.102
     36 117.185.27.103
     51 117.185.27.104
     28 117.185.27.142
     30 117.185.27.143
     38 117.185.27.144
     33 117.185.27.146
     29 117.185.27.147
     37 117.185.27.98
     33 117.185.27.99
     
      3 101.226.125.108
      3 101.226.125.109
      1 101.226.125.113
      1 101.226.125.114
      1 101.226.125.115
      2 101.226.125.116
      2 101.226.125.117
      2 101.226.125.118
      3 101.226.125.119
      3 101.226.125.120
      1 101.226.125.121
      2 101.226.125.122
      2 101.226.125.14
      2 101.226.125.15
      1 101.226.125.18

     20 183.232.118.13
     18 183.232.118.14
     15 183.232.118.15
     13 183.232.118.16
     17 183.232.120.37
     19 183.232.120.38
     18 183.232.120.39
     18 183.232.90.143
     16 183.232.90.36
     20 183.232.90.37
     14 183.232.90.38
     16 183.232.90.65
     18 183.232.90.79
     16 183.232.90.80
     21 183.232.90.97

我尝试着自己分享一个测试链接到朋友圈,用自己和身边几个朋友的来点击,都没有附带 nsukey ,这也印证了上面对于不带 nsukey 请求为真实用户点击的猜测。但是隔了一夜看访问记录里,是有带 nsukey 的请求过来的,两种请求出现的时候先后顺序上没有规律,且应该和系统无关( Android & iOS ),在网上找了一下相关资料,发现谈论的人很少,所以来 V 站问问有没有了解的或者研究过同样问题的同学,一起讨论下,这部分带有 nsukey 的请求究竟是真实用户的请求被微信(运营商?)缓存/中转还是被抓取或者其他的?究竟什么条件会触发朋友圈分享链接时自动加上 nsukey 这个参数?

14625 次点击
所在节点    程序员
4 条回复
muyunyan
2016-10-12 13:37:39 +08:00
试试自己多点几次同样的链接会不会出发微信附带 nsukey 的逻辑?
按照网上已有的资料猜的话,应该是多次触发产生,微信帮助网站开发者鉴别是否为同一用户的多次点击的行为。
lution
2016-10-12 16:01:22 +08:00
@muyunyan 不会。。。而且从数量上来看,应该不是多次触发产生的。数量太高,我感觉这部分请求不像是用户的请求了。
nicoljiang
2016-10-13 11:20:52 +08:00
可能是搜狗的 spider 呢
lingyi95
2018-12-24 01:31:04 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/312163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX