雷锋网宅客频道曾发文《测试左右脑年龄的微信小程序,结果竟然是随机的?》
后台有网友对此表示很不屑↓↓↓
觉得这就是一场娱乐,实在没必要搞得太认真~
但,吾爱娱乐,吾更爱真理!
▲我没有说我是亚里士多德,我只是说你像柏拉图
针对上篇文章中代码不全的问题,有位更较真的人,通过 Charles 抓包获取了小程序请求到的内容,然后分析代码得出了分数计算的逻辑!
技术分析来自简书作者魏永。
原文链接:http://www.jianshu.com/p/2e9d2be97c93
小程序的分数到底是怎么算出来的 ?
工欲善其事,必先利其器。
魏永列出了以下几项工具↓↓↓
工具:手机,微信,Charles,PC
而破解的思路,则是通过 Charles 抓包获取小程序请求到的内容,分析代码即可理解分数计算的逻辑。
据雷锋网了解,Charles 是一款代理服务器,可以通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
但是,在分析过程中,他遇到了两个问题↓↓↓
困难1:小程序的请求是 HTTPS 类型的,抓包拿到的都是加密后的内容。
针对这个问题,他把 PC 和手机都安装了 Charles 的 SSL 证书,由于支持 Charles 支持 SSL 代理,所以可以截取分析 SSL 的请求。
困难2:小米手机安装 SSL 证书失败。
针对第二个困难,他先用 PC 访问 chls.pro/ssl,下载证书发送到手机上,最终安装成功。
通过监控请求发现,小程序只在开始的时候发送了一次请求,之后就没有再去请求了。说明打分的逻辑是在前台做的。这就是那一条请求:
▲请求截图
真正的代码是这样的:(只保留一道题目,store 就是每道题的得分,看不清的请直接看图下的分析)
看完这里大家估计都明白了,这和之前书面的测试题没有什么不同。每一道题的选项对应不同的得分,最终的结果由总分的所在区间决定。
所以,这个测试不是随机生成的结果!
微博上的那位程序员的分析难道错了?
那么现在的问题就是,这难道是位假的程序员?
昨天就有网友在这条微博下面留言,这是位没看明白代码就下结论的假程序员~~~
真假不知道,但雷锋网发现,这条微博现在已经被“_Mugiko_”删掉了~
而且,根据之前他所分析的代码,应该不是大多数网友所测试的小程序的代码,而且一款网页版的测试。
究竟这个网页版的年龄结果到底是不是随机的,这位“_Mugiko_”也没有列出更详细的代码。
谁才是最大赢家?
这两天关于测试结果是否随机的新闻层出不穷,一会儿说是随机的,一会儿说不是随机的,这不但没有打击人们测试的积极性,反而有不少吃瓜群众多做了几遍题,看看到底分数有啥变化~
来,我们看看下面这两个数字↓↓↓
前天下午还只有 44 万人在测,而今天下午,已经有 2390 万的测试量了~~~
话说回来,为啥这类测试有这么多人在做?
我们就得提到“巴纳姆效应”了。
这得从一位杂技师说起,一位名叫肖曼·巴纳姆的著名杂技师在评价自己的表演时说,他之所以很受欢迎是因为节目中包含了每个人都喜欢的成分,所以他使得“每一分钟都有人上当受骗”。
巴纳姆效应又称福勒效应,星相效应,是 1948 年由心理学家伯特伦·福勒通过试验证明的一种心理学现象,人们常常认为一种笼统的、一般性的人格描述十分准确地揭示了自己的特点,当人们用一些普通、含糊不清、广泛的形容词来描述一个人的时候,人们往往很容易就接受这些描述,却认为描述中所说的就是自己。
现在,请看看那些得分后的结论吧,当你听到“成熟”“创新”“理性”“被人羡慕”等词时,是不是觉得说的就是自己呢?