為「左右腦年齡測試」小程序正名

2021-02-08 E安全

更多全球網絡安全資訊盡在E安全官網www.easyaq.com

最近朋友圈很火的左右腦年齡測試小程序,參與測試的人數顯示有2390萬在測,不知道這個數據是實時的,還是累計的,不過也足以說明大家對類似測試的興趣以及微信朋友圈的傳播速度。

寫這篇文章算是幫該小程序正個名吧,首先測試之後有兩個結論:

1,該小程序左右腦年齡測試的結果並不是隨機給出的; 

2,一些大v公眾號的文章應該是實習生寫的,應該是沒有進行測試就得出了「隨機給出測試結果」這個結論。

在朋友圈看到很多人都在用這個小程序測試,禁不住好奇也測試了一把,測試完之後感覺還挺準確的,發完朋友圈之後,在幾個微信群裡就看到了一段代碼的截圖,其中有段標紅的關鍵代碼是:

var ansrandom2=Math.ceil(Math.random()*10)

其中Math.ceil()函數是執行向上捨入,即它總是將數值向上捨入為最接近的整數;Math.random()函數是取從0至1之間的隨機數,乘10以後就是取0到10之間的隨機數。相關的2張截圖:

回到正題,看完微信群中發的代碼截圖之後,沒有看上下文,就覺得這個小程序測試結果應該是隨機生成的,然後就發了個朋友圈吐槽被忽悠這個小程序給套路了,沒想到的是現在要寫這篇文章打自己的臉。之後看到很多大v、小v公眾號也發了文章質疑這個微信小程序的測試結果是隨機生成的,比如差評君、雲頭條。

仔細看截圖中的代碼發現ansrandom2參數值的代碼片段前面有注釋「顯示底部廣告」,並且在後段「輸出測試結果「代碼段並沒有看到這個參數值跟結果的生成有直接關係,其中有關係的一個參數值是ansrandom,兩個參數值是差一個數字2的。雖然截圖中代碼片段不全,根據注釋等差不多就能知道很多吐槽文章中說該小程序測試結果是隨機生成的,顯然是錯誤的。可能很多寫文章的人也沒有進行測試,照抄加工寫出的一篇文章吧,連代碼片段截圖都是微信群及朋友圈流傳的那2張。

既然發現結果有可能不是隨機生成的,實在忍不住就找了個在線的網站測試了一下,抓包並沒有發現相關的js代碼片段,結果生成也不是通過前端來處理判斷的,抓包到的關鍵請求如下:

POST /api/quiz/answer HTTP/1.1Host: cn.qinpiam.cnquiz_id=276&user_choice_list=%7B%221843%22%3A%7B%22id%22%3A5549%7D%2C%221844%22%3A%7B%22id%22%3A5551%7D%2C%221845%22%3A%7B%22id%22%3A5555%7D%2C%221846%22%3A%7B%22id%22%3A5557%7D%2C%221847%22%3A%7B%22id%22%3A5561%7D%2C%221848%22%3A%7B%22id%22%3A5565%7D%2C%221849%22%3A%7B%22id%22%3A5567%7D%2C%221850%22%3A%7B%22id%22%3A5571%7D%2C%221851%22%3A%7B%22id%22%3A5575%7D%7D&user_id=&csrfmiddlewaretoken=XeeJznpgdm8Q4GQGU8SAKeEJczFRC6iE&fr_token=

其中user_choice_list參數的值就是用戶選擇答案,該請求提交到服務端之後會獲取如下請求回顯:

{"result_wait": 3, "user_id": "anonymous:c1491c60-1eb3-44c8-b626-690aa7471d5c", "user_upload_img_url": "", "fr_token": "k8rXiLH8ZrWk2EOk", "hashed_ids": "OoLqdPzrsKzXal4G", "answer_id": 3068}

如圖:

注意請求回顯中的兩個標紅參數值,最終生成的結果查看url是由上圖中標紅的兩個欄位參數值拼接而成的,具體url:

http://cn.qinpiam.cn/f/PGEjb27Ofp2MdVNW/r/juVnk1szc7aTx2jo

user_choice_list的值不變,對該請求進行多次重放,發現生成的結果卻是不一樣的:

{"result_wait": 3, "user_id": "anonymous:c1491c60-1eb3-44c8-b626-690aa7471d5c", "user_upload_img_url": "", "fr_token": "k8rXiLH8ZrWk2EOk", "hashed_ids": "OoLqdPzrsKzXal4G", "answer_id": 3068}


{"result_wait": 3, "user_id": "anonymous:3ba1447a-d090-4161-a1a9-f9f89e3dcc72", "user_upload_img_url": "", "fr_token": "9OEKT70uujxAUR5Y", "hashed_ids": "6x01dNYpH0kybX7W", "answer_id": 3066}


{"result_wait": 3, "user_id": "anonymous:acfc6743-6e7a-46e8-9a04-bc2531105aa5", "user_upload_img_url": "", "fr_token": "hGYUipEqzoyFSSCO", "hashed_ids": "P3RBe3yOupgybLJr", "answer_id": 3122}

可以得出結論:該在線網站測試結果確實是隨機生成的,結果並不是在前端代碼中驗證隨機生成的,而是從服務端獲取的。僅靠那段流傳的js代碼片段來吐槽小程序的結果,顯然是有毛病的。一些公眾號測試用的在線網站跟我測試用的在線網站應該是一樣的,百度結果能搜到的就那麼幾個,並且得出的左右腦年齡結果截圖跟我這篇文章中的截圖是一樣的,特點是有「YES」、「NO」這兩個按鈕,跟微信小程序中測試結果圖是有明顯區別的。差評君文章中用到的截圖也是通過在線網站測試得出的結果,但是經過我的測試確實沒有發現前文中的js代碼片段。

再看看微信中的小程序到底是如何生成結果的,雖然微信屏蔽了該小程序的掃碼入口,但是可以通過搜索帳號主體」實用心理測試大全「來進入,如圖:

費了九牛二虎之力,成功抓到了小程序的請求數據包,涉及到的幾個請求如下:

抓到的請求中用的域名跟"實用心理測試大全"這個小程序的帳號主體介紹中的域名一致,如圖:

抓到的該小程序涉及到的請求中有如下一個:

https://api10.menglechong.net/data/1249.json

訪問可以查看到json文件的代碼:

從上面兩張圖中可以看到,每道題目的答案都有對應的一個store分數,最終根據九道題目得到的分數總和的範圍來得出結果和對應的分享用的圖片,一共有6個結果。

沒有抓到微信小程序獲取結果的請求,不知道是不是獲取結果請求沒有走http、https的原因,但是可以得出一個結論:該左右腦年齡測試小程序的測試結果並不是隨機的;該小程序的代碼中並沒有流傳的兩張圖片中的代碼段。小程序的測試結果年齡數字是寫死到json文件中的,而前文中多個公眾號引用的那個代碼片段圖中年齡是獲取的result[index].name.one的參數值,說明那張前端代碼截圖跟該微信小程序是沒有關係的。

根據這次的事情,吸取的經驗教訓就是不要輕易下結論,很容易導致自己打自己的臉,另外就是大v們寫的文章也不一定是權威的。

本文轉自公眾號:聚沙安全黑板報

▼點擊「閱讀原文」 查看更多精彩內容


相關焦點

  • 為左右腦年齡測試小程序正名
    背景最近朋友圈很火的左右腦年齡測試小程序,參與測試的人數顯示有2390萬在測,不知道這個數據是實時的,還是累計的,不過也足以說明大家對類似測試的興趣以及微信朋友圈的傳播速度
  • 還在朋友圈玩左右腦年齡測試?程序代碼被程序猿扒出了,真相是……
    ,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。就在「左右腦年齡測試」熱傳不久後有網友稱同樣的答案會得到不同的分數開始質疑測試結果的真實性還有程式設計師研究測試代碼發現測出來的年齡只是隨機數相關專家認為,有關左右腦年齡的測試沒有科學依據,左右腦沒有分工,從事複雜活動時實為左右腦協同操作。
  • 左右腦年齡測試靠不靠譜?
    測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。  就在「左右腦年齡測試」熱傳不久後,便有網友稱,同樣的答案會得到不同的分數,並質疑測試結果的真實性。同時有程式設計師表示,研究測試代碼發現,測出來的年齡其實只是隨機數。
  • 你被刷屏的「左右腦年齡測試」騙了
    可是只有幾道題的測試真的能準確測出「左右腦年齡」嗎?果不其然有人來闢謠了其實,都是隨機的在最初引發熱傳的圖片上附有二維碼,但在引發熱傳不久後,掃描二維碼後便提示,網頁包含不安全內容,被多人投訴,為維護綠色上網環境,已停止訪問。而在二維碼掃描頁面被禁止訪問後,仍有小程序測試可以使用,截至昨晚7時許,小程序頁面上顯示已經有超過2390萬人在測。
  • 「左右腦年齡測試」別把娛樂當做科學
    「左右腦年齡測試」別把娛樂當做科學時間:2017-10-27 08:20   來源:川北在線原創(guangyuanol.cn)   責任編輯:毛青青 川北在線核心提示:左右腦年齡測試別把娛樂當做科學 江德斌 近日,關於左右腦年齡測試結果的圖在朋友圈引發熱傳。
  • 朋友圈的左右腦年齡測試,你信嗎?
    這兩天,很多人的朋友圈都被一個關於左右腦年齡的小測試刷屏了。
  • 「左右腦年齡測試」別把娛樂當做科學(圖)
    有網友稱,同樣的答案會得到不同的分數,並質疑測試結果的真實性。有程式設計師表示,研究測試代碼發現,測出來的年齡其實只是隨機數。專家認為,左右腦年齡的測試沒有科學依據。(10月26日《北京青年報》)  「左右腦年齡測試」最近幾天很流行,經常在微信群和朋友圈裡見到,測試者往往信以為真,不僅認為自己的左右腦年齡存在差異,還把測試出來的結果曬給朋友看,希望他們也測試,互相比拼下。
  • 全被「左右腦年齡測試」騙了!都是隨機
    IT之家10月26日消息 近期有關於「左右腦年齡測試」結果的圖片在為微博、微信朋友圈引發熱傳。據了解,用戶掃描進入小程序後,回答幾個設定問題,便會生成一張顯示有「這個男人的眼睛在一條直線上嗎?」左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。
  • 左右腦年齡測試不靠譜 程式設計師:測試結果只是隨機數
    熱傳的左右腦年齡測試結果程式設計師破解的測試代碼近日,關於左右腦年齡測試結果的圖在朋友圈引發熱傳。測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。
  • 「左右腦年齡」測試結果是假的嗎?是的!
    這兩天你的朋友圈是不是被一個「左右腦年齡」的測試刷屏了↓↓↓這個測試比較簡單回答幾個設定的問題便會生成一張顯示有左右腦兩個年齡測試結果的圖片還配有相關的文字解釋……大家的朋友圈裡不少人為此沾沾自喜或黯然神傷……然而今天各大官微紛紛出來澄清↓↓↓艾特在網上查閱了相關資料發現已有程式設計師研究出了測試代碼發現測出來的年齡只是隨機數程式設計師:答案是隨機產生的昨天,北青報記者聯繫到浙江一家科技有限公司的程式設計師陳先生,陳先生根據網址破解了測試代碼,稱這款測試最關鍵在於
  • 「左右腦年齡測試」不科學 程式設計師:結果實為隨機數
    左右腦年齡測試其實不靠譜程式設計師表示結果為隨機數 專家稱測試結果沒有科學依據近日,關於左右腦年齡測試結果的圖在朋友圈引發熱傳。測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。
  • 測試左右腦年齡的小程序結果不是隨機的!
    10月25日,雷鋒網宅客頻道曾發文《測試左右腦年齡的微信小程序,結果竟然是隨機的?》後臺有網友對此表示很不屑↓↓↓覺得這就是一場娛樂,實在沒必要搞得太認真~但,吾愛娛樂,吾更愛真理!▲我沒有說我是亞里斯多德,我只是說你像柏拉圖針對上篇文章中代碼不全的問題,有位更較真的人,通過Charles抓包獲取了小程序請求到的內容,然後分析代碼得出了分數計算的邏輯!技術分析來自簡書作者魏永。原文連結:http://www.jianshu.com/p/2e9d2be97c93小程序的分數到底是怎麼算出來的 ?
  • 「左右腦年齡測試」是假的!公安部已闢謠……
    的左右腦年齡測試題。如果沒看見的話,那你可能被好友們屏蔽了……事情梗概近日,關於左右腦年齡測試結果的圖在朋友圈引發熱傳。測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。這項「左右腦年齡測試」共有9道問題,每個問題有2-4個選項。
  • 「左右腦年齡測試」不靠譜 程式設計師:結果實為隨機數
    左右腦年齡測試其實不靠譜  程式設計師表示結果為隨機數 專家稱測試結果沒有科學依據  近日,關於左右腦年齡測試結果的圖在朋友圈引發熱傳。同時有程式設計師表示,研究測試代碼發現,測出來的年齡其實只是隨機數。相關專家認為,有關左右腦年齡的測試沒有科學依據,左右腦沒有分工,從事複雜活動時實為左右腦協同操作。  左右腦年齡測試刷爆朋友圈  「這個男人的眼睛在一條直線上嗎?我的結果是,左腦33歲,右腦5歲。」近日,一則關於左右腦年齡的測試「刷爆」朋友圈。
  • 「左右腦年齡測試」火爆網絡 專家:無科學依據
    原標題:「左右腦年齡測試」火爆朋友圈 記者親測不靠譜 專家亦稱測試無科學根據 做幾個選擇題,就能測出你左腦和右腦的年齡?最近,一款「左右腦年齡測試」的小遊戲在微信朋友圈走紅。很多網友紛紛曬出自己的測試結果,比如「左腦46歲、右腦19歲」,結果分析是:「如同一個睿智的智者,思考方式老練深刻。」這些分析大多持褒揚態度,因此很多網友表示認同。輸入相同答案得到不同結果楚天都市報記者留意到,有的網友曬出自己的測試結果,左腦和右腦竟然分別達到了825歲和927歲的高齡(如圖)。
  • 微信左右腦測試實為竊取信息 目前該程序已被停用
    前幾天,一款測試左右腦的程序刷爆朋友圈(見圖)。市民通過授權登陸,進入程序然後做選擇題,最終得出測試結果。細心的網友卻發現,幾次測試選擇一樣的答案,結果卻不相同。對此,北京市公安局網安總隊的官方微博「首都網警」發文稱,這個小程序的測試結果是隨機的,所謂的測試其實是一個謊言,用於竊取用戶信息。
  • 左右腦年齡測試火了!到底準不準?程式設計師這樣說...
    相關專家認為, 有關左右腦年齡的測試沒有科學依據,左右腦沒有分工,從事複雜活動時實為左右腦協同操作 。▲ 熱傳的左右腦年齡測試結果左右腦年齡測試刷爆朋友圈「這個男人的眼睛在一條直線上嗎?我的結果是,左腦33歲,右腦5歲。」近日,一則關於左右腦年齡的測試「刷爆」朋友圈。有不少網友曬出自己的測試結果,並配上了一些調侃的文字。
  • 刷爆網絡的「左右腦年齡測試」真相,程式設計師這麼說
    測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。◆  ◆  ◆  ◆  ◆就在「左右腦年齡測試」熱傳不久後,便有網友稱,同樣的答案會得到不同的分數,並質疑測試結果的真實性。同時有程式設計師表示,研究測試代碼發現,測出來的年齡其實只是隨機數。
  • 左右腦年齡幾歲9題測試題目正確答案 大腦年齡測試結果答案
    左右腦年齡越大越好嗎?emmmm.....這個恐怕是的。  這兩天朋友圈又開始瘋魔的玩起了一個小程序,這個就是很流行的一個左右腦測試:這個男人的眼睛在一條直線上嗎?點擊在線測試左右腦年齡:這個男人的眼睛在一條直線上嗎?
  • 流行的左右腦年齡測試你也測了嗎?別測了!看了就懂了
    近日,左右腦年齡測試在朋友圈引發熱傳。測試中,只要通過掃描測試結果圖中的二維碼並回答幾個設定的問題後,便會生成一張顯示有左右腦兩個年齡測試結果的圖片,圖片的下方還配有相關的文字解釋。但是,隨著這個測試的不斷升溫,有網友開始質疑同樣的答案會得到不同的分數,測試結果的真實性存在問題。也有程式設計師表示,研究測試代碼發現,測出來的年齡其實只是隨機數。醫學專家認為,有關左右腦年齡的測試沒有醫學依據,關注大腦早衰的原因更有意義。左右腦年齡測試在朋友圈刷屏「這個男人的眼睛在一條直線上嗎?我的結果是,左腦13歲,右腦17歲。」