原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11810240.html
杂谈 :
最近火的不行的盖楼拿现金红包, 以及之前就很火的喵口令, 闲来无事想分析一下这其中的操作是怎么实现的, 把分析结果记录一下,嘿嘿.????
先随便来一个苹果11pro max的喵口令:
【Apple/苹果 iPhone 11 Pro Max】,椱ァ製整句话¥jmbaYGZLlyU¥后咑閞手机天猫
首先肯定是找特殊码, 像什么 Apple/ 苹果 天猫 这些都不是关键字, 如果是后端程序员一眼就能看个大概, ¥这玩意是不是很熟悉, 人民币符号 ! 没错, 关键就是这两个符号和它中间那串字符!
如果不相信的话可以只用下面这一串代码复制打开淘宝或者天猫试一下就知道了!(如果喵口令没有过期时间的话, 其实我猜是有一定过期时间的,这个原因后面会说到)
¥jmbaYGZLlyU¥
我们继续分析:
那么这一串符号是怎么样才能够被识别出来呢, 我做了一个测试:
我首先将其中的空格去掉, 复制打开天猫, 还是可以弹出商品信息的, 所以空格是会被后端自动处理的,我再次把后面的 ¥ 人民币符号去掉, 复制打开天猫, 是无法弹出商品信息的, 这再次证实了确实是以两个人民币符号¥作为标识符的.
那么接下来的问题是,在两个¥之间随便放什么值都可以吗? 我就随便写了一串 "¥ ksjdhgoehoihg ¥" 复制打开天猫, 实际什么都没有出现.
这下就大概能猜一下喵口令的实现原理了!
喵口令原理猜测分析:
1. 用户点击商品的分享, 然后系统将这条喵口令插入到Redis或者其他缓存数据库, 并且带有商品和用户信息的一条value值, value值可能是用 商品id+用户id中间用 "-" 或者 "." 隔开来都有可能, 并且设置一个过期时间, 不然生成那么多不重复的喵口令, 太浪费了吧.
2. 当用户复制了喵口令之后, 这条喵口令就在用户手机的剪贴板上了, 用户只要打开了手机淘宝或者手机天猫app, 那么app会自动查询用户剪贴板的最新那一条内容, 从中读取并解析, 看看有没有两个人民币符号¥, 有的话将中间的内容提取出来, 并且访问一下Redis或者其他缓存数据库, 能够找到相应的key对应的内容的话, 就会加载对应的商品信息地址等内容, 随后会进行一个喵口令弹窗! 如果没有找到以这个中间内容为key的数据的话, 就不会弹窗,;
3. 如果用户处于没有网络的状态下, 也是会弹窗的, 不过弹的窗是下面这种!(这也验证了打开app是会去请求缓存数据库的)
不得不佩服在微信app里面不让发一些诱导性链接之后阿里工程师想出来的分享的好点子, 我还要继续努力呀!