重點摘要
下載應用程式前,應先了解其要求的權限,並衡量個人資料遭竊取的風險。這篇 2015 年文章說明背景執行緒如何耗電、不必要的權限為何令人質疑,以及 Google 與 Apple 審批方式的差異。
每次開機,您首先會使用哪個應用程式?Facebook?Whatsapp?還是查看電郵?一般而言,我們都會到 App Store 或 Google Play 下載心儀的應用程式,以完成自己想做的事情。時間久了,便會發現即使手機已充滿電,閒置時電量也會很快耗盡。此外,也有不少關於手機遭監聽或感染病毒的新聞,網上亦有不少教學建議機主將手機格式化及備份資料。有見及此,希望從程式設計及用家的角度分享一些心得。
1. 關機不一定代表完全停止運作,您永遠不知道應用程式在背景執行甚麼程式
在電腦世界中,於背景運行的程式稱為執行緒(Thread)。執行緒與主程式分開,獨立執行背景程式。只要在背景編寫回呼方法(callback method),便可以定期更新主頁。在 Android / iOS 中,有三種類型的執行緒:執行單一任務、重複執行某項任務,甚至持續使用某個後端類別(Backend Class)。
上述所有執行緒,若用家沒有透過設定停止其運作,或開啟應用程式堆疊(App Stack)將其滑走,手機便會很快耗盡電量。即使按照正常步驟離開應用程式,執行緒也未必會停止運作。
如果您有開發Android 應用程式的經驗,便會明白所有開機及關機程序,最初都是透過擷取按鈕事件來觸發。即使已離開某個應用程式,若開發者設計了執行緒,仍須由用家進入設定才能停止其運作。
黑客可以在關機流程中擷取按下及放開按鈕所觸發的事件,並執行執行緒以進行任何操作。如果您的手機已取得 root 權限,或 iPhone 已越獄,應用程式更可以竊取所有用戶資料,以及聯絡人名單中的電郵地址和電話號碼。
2. 要求過多不必要權限的應用程式,其安全性令人質疑
不少應用程式開發者,尤其專注於Android 開發的開發者,都會額外啟用數項權限,以便改良應用程式。這種情況在拍攝及手電筒應用程式中尤其嚴重:
只要稍加留意,便會知道開啟閃光燈與開啟 Wi-Fi、擷取用戶資料毫不相關。然而,用家心急時,往往沒有留意應用程式會要求手機上的哪些權限。此外,Google 與 Apple 在審批應用程式上架方面,處理方式亦大有不同。Google 只會掃描 APK 一次,檢查是否有明顯的木馬程式,以及內容是否符合要求,最快兩小時後便可成功上架;Apple 則需要數星期。提交截圖及文字描述後,整個審批過程均由人手進行。如果應用程式需要與其他電子設備通訊或配合使用,Apple 應用程式審核員更會要求開發者提交示範影片,讓其他人了解如何使用該應用程式。因此,一般人較容易相信iOS 應用程式比Android 應用程式安全。
由此可見,使用應用程式雖然方便,卻暗藏風險。下載應用程式前,請先停下來想一想:自己是否確實清楚了解其使用的權限,並已衡量個人資料遭竊取的風險。至於將資料存放於雲端是否安全,則留待日後有機會再談。