原創:轉載需注明原創地址 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里面不讓發一些誘導性鏈接之后阿里工程師想出來的分享的好點子, 我還要繼續努力呀!