舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

緣起,一個反偵察能力超強的小程序

今天,好友向我推薦了一款小遊戲,建議我扒一下它。我沒多想就打開了,然後著實被它噁心到了。話不多說先上錄像:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

點擊分享的小程序後,會自動跳轉到第二個小程序,第二個小程序一閃而過直接進入一款小遊戲。

僅自動跳轉還不夠狠,如果你使用的iPhone,你可以逐次關閉這三個小程序回到聊天界面。但如果你是安卓,抱歉,你將被卡在第二和第三個小程序之間,進入無限的關閉-自動打開循環:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

是的,你退不出來了!不管你的手多快,你都無法正常退回到聊天界面,它會無限讓你訪問這個小遊戲!

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

但是當你回到小程序界面準備截圖取證時,這個小程序自動關掉了!

它自動關掉了!

關掉了!

如果你有耐心,嘗試再次打開它,你會發現,你!再!也!打!不!開!了!

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

就問你,服不服!

這位小程序開發者絕對是行家,具有非常強的反偵查能力!他從一開始就知道這會惹怒你,遭到你的舉報,所在他在舉報的關鍵環節加入了反偵察技術,讓你在案發現場找不到任何證據!

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

套路分析

這種野路子喜哥最喜歡了。我們先簡單梳理一下它的實現邏輯,整個流程涉及到三個小程序,我們可以在小程序歷史記錄頁找到他們:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

我們從後往前依次訪問他們,看看“無限循環”這個操作是從哪一步開始的。

遊戲沒有問題

我在小程序歷史列表直接打開這個投籃小遊戲(序號3),然後點擊退出,發現可以正常退出的,截圖也正常。說明噁心不在於小遊戲,它只是個最終呈現。那說明無限打開這個操作有可能是它上家(序號2)那個導航小程序造成的。

導航小程序也沒有問題

同樣從小程序歷史列表直接打開導航小程序(序號2),打開它後沒有自動跳轉到小遊戲,可以正常關閉,並且截圖也不會觸發自動關閉。那麼也就是說在正常情況下,它也是沒有問題的。只有被特殊環境“刺激”了,才會激發出它瘋狂的狀態。

所以問題肯定出在第一個小程序身上了。

第一個小程序喚起了其他小程序的瘋狂

由於之前截圖被小程序“記錄在案”,我們需要清理一下緩存才能再次打開這個噁心的小程序。清掉歷史記錄後,打開這個小程序,之前瘋狂無限循環再次復現……

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

扒代碼

既然你這麼作,就不要怪我扒代碼了。

我通過特殊的渠道,扒出了這個計算器小程序的JS源代碼。大概瞭解了它的基本實現邏輯:

  • 在onShow或者onLoad函數中使用wx.navigateToMiniProgram接口,直接跳轉到導航小程序;
  • 跳轉的同時在wx.navigateToMiniProgram接口的extraData參數中傳遞變量給導航小程序;
  • 本來正常的導航小程序接收到通過extraData傳遞的參數後,激活隱藏在它代碼裡的自動跳轉腳本,進入瘋狂無限循環狀態。

第一個小程序的部分JS代碼:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

至於截圖小程序自動關閉功能,可以通過wx.onUserCaptureScreen監聽手機的截屏事件,一旦用戶截屏,則將該路徑關閉即可。

代碼如下:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

問題和反思

1. 盈利空間很大

目前業內小程序廣告有兩種計費方式,分別為CPM和CPC,參考價格如下圖:

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

回頭再想想,如果你的手機是安卓手機,被困在無限循環裡的那幾次點擊,就可以為那個導航小程序賺到2-5元錢。如果這套噁心的小程序組合被分享到一個100人的活躍群聊中,按照10%的點開概率,他將至少盈利20-50元。

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

這麼大的盈利空間,肯定不敢獨享,這樣的小程序不只這一個。好友還給我分享了另一個同樣具有這等神奇功能的小程序。它沒有名字,頭像是頭腦王者,進入小程序有一個明顯的button引導用戶點擊。一旦你點擊了,你將進入同樣的無限循環……

這個也更野蠻。點擊後會進行更多次跳轉,以至於你都不知道你訪問了哪些小程序!並且,無限循環是嵌套的,這個button出現在每一個你進入的小程序裡面。

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

2.沒有規則約束

在小程序關聯規則方面,通過使用“僑聯”的方式,可實現大量小程序之間的跳轉。

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

通過本文曝光的小程序跳轉的方式,理論上只要你願意,你可以在所有的小程序中隨意跳轉。

官方運營文檔中,僅做了“不得”說明,但並未從實現方面給予約束。講道理,申請獲取userInfo的時候必須彈窗,為什麼跳轉小程序就可以直接越過用戶許可呢?

舉報!小程序惡意跳轉導流,微信官方不管還是管不了?

3.審核能力不足

用戶體驗如此之差的小程序能通過審核,一方面是開發者的詭計多端,另一方面也顯示了小程序目前的審核團隊能力的欠缺。

據我所瞭解的,有很多小程序使用“只給審核團隊展示基本功能,上線後再調用完整功能

”的方式繞過審核。講道理,這種過審方式有些擦邊球,但它確實有效!首先,如此大量的審核工作去僱傭具有代碼審核能力的員工,成本是不可估量的;另一方面,對代碼逐行審核甚至僅是功能代碼審核也是不現實的。所以導致在小程序審核時,審核人員能查看一下基本功能是否完備、有沒有紅包之類的違規功能也就算敬業了。

於是,這種“核心功能”被隱藏的計算器,就可以輕鬆過審了。

4.要不讓開發語言背鍋?

話說回來了,讓安卓陷入無限循環的bug,在iPhone端竟然啥事也沒有,要不然小程序改用swift開發得了。

以上。


分享到:


相關文章: