如何才能阻止下一個京東金融「偷」走你的照片?
16 日凌晨,網友 @ 瘦出的肋骨已經消失的大俠阿木 釋出的一則視訊 顯示,只要使用者將京東金融的 App 放在後臺,他們在其他 App 中進行截圖操作獲得的截圖乃至在這期間使用相機拍攝的照片,無一例外都會被京東金融 App 悄悄快取至 Android/data/com.jd.jrapp/cache 目錄下。
對於京東金融這樣一款應用來說,這樣的行為無疑出格了。好在京東金融方面很快通過客服微博做出了 解釋 ,併發布 長圖微博 表明了「絕不會上傳使用者隱私」的立場。
緊隨其後,相關功能緊急下線,京東金融 App「偷照片」這場風波,也轉眼得到了平息。
「錯誤開發」迷思
如果你好奇京東金融 App 究竟是如何偷取照片的,京東金融客服的解釋足以解答你的疑惑:

用通俗一點的話來說,京東金融 App「存圖」的初衷是為了方便使用者截圖與客服溝通反饋,雖然開發者為達成這個功能所呼叫的介面和第三方庫都不具備上傳圖片的能力,但採用手機快取(cache)而不是執行記憶體(RAM)的實現方式還是導致了這次京東金融 App 後臺快取照片的問題。
用京東金融客服的話來說這次出現問題純屬「錯誤開發」,但這並非問題的根源。仔細審視當前移動平臺上的應用生態(尤其是 Android 平臺)就不難發現,京東金融 App「偷照片」這件事其實也為隱私安全保護敲響了警鐘。
一方面,真正的錯誤開發其實是截圖反饋功能 。
通過懸浮窗提供截圖反饋入口,可以稱得上是國內自作多情派產品經理們的幾大「傑作」之一, 用更加直白一點的表達方式來說,這種手段就是不折不扣的陋習。
試想一下,開啟某某寶截圖一年的賬單開銷想要發個朋友圈,截圖完畢後我們卻先在這個應用裡看到一個小彈窗,問你要不要把剛剛截的圖用來進行「問題反饋」:

作為一款執行在智慧手機上的應用,每次截圖時都彈出這樣的提示無疑是對「智慧」二字的褻瀆。使用者真的需要如此「熱心」的問題反饋入口嗎?每個人心裡都有一杆秤。而通過這種方式收集到的有效反饋資訊究竟有多少,就只有那些負責運營維護這些應用的開發者們自己明白了。
近年來熱衷於「AI 客服」「自助反饋」等炫技方式的國內應用開發商,在做這個功能的時候突然間沒了那種「不給許可權別用我」的自信。而那些毫不在意平臺應用設計規範、尤其是 Android 平臺應用設計規範的國內應用開發商,眼裡又永遠只有那幾個流氓頭子。
最終,類似的設計在某系國產應用中普及之迅速,在某大廠的應用中幾乎已經成為了「標配」,這種清奇的功能設計不僅為「錯誤開發」打開了方便之門,「錯誤開發」的最終解釋權也牢牢掌握在應用開發商手中。
另一方面, 無論 iOS 還是 Android,我們能夠對應用許可權所進行的管理,實在是有些粗放了 。
這種「粗放」是如何表現的呢?舉個例子,我們下載了一款應用,然後我們需要在註冊賬號的過程中為自己挑選一張美美的頭像,這時這款應用一般就會通過彈窗告訴你「我需要儲存空間讀取許可權」了。
但對應用來說,得到授權不僅是一件「一時爽」的事,因為某個剛需而獲取到的許可權,也能夠成為它們「一直爽」的溫床—— 挑選完頭像,為什麼我就不能用這個許可權再幹點別的呢?比如讀取你的截圖,然後把它悄悄存在其他地方 。
Android 目前還沒有提供「只允許一次」的授權選項,而大眾往往又都是健忘的。vivo NEX、OPPO Find X 等升降式攝像頭手機上市後就有網友發現,在使用 QQ 瀏覽器 等 App 的過程中前置攝像頭會不時自動彈出,這些手機也因此被戲稱為「流氓應用鑑別器」。
隱私洩露的時候發問「究竟是誰給你偷看的權力」,殊不知當初放虎入羊圈的人正是自己。

即便是以安全著稱的 iOS,開發者們其實也有許多方法來繞過許可權安全機制:在 App 進入後臺的 15 分鐘內,都可以靜默訪問相簿等敏感資訊。此外,當我們在 App 內使用後置攝像頭拍照時,其實也無法確認它是否順便呼叫了前置攝像頭。

微博使用者@遊戲打折情報的文章中,也記錄了微信、QQ 及盒馬在後臺執行時的一些不文明行為。
從管好許可權入手
雖然目前原生 Android 和 iOS 在許可權管理上都還有這樣那樣的不足,但在下一個「錯誤開發」被大眾發現之前,我們還是可以採取一些必要措施來強化對應用許可權的管理。
在 iOS 中,最簡單的方式就是在 iOS 的設定裡找到並關閉應用的「後臺應用重新整理」許可權 。這樣一來,當你返回桌面或其它應用時,當前程序就會被暫時凍結,如果在此期間拍攝了敏感照片,還可以提前刪除或儲存至其它位置。

在更加開放的 Android 上,很多 App 乾脆採取了不給許可權不讓用的策略(簡要概括就是「使用者你好,我是你爹」)。為了規避新系統對許可權的更嚴格控制,有些國產 App 甚至故意降低 targetSdkVersion,讓你在拒絕許可權時心驚膽戰。

好在一些國產 ROM 提供瞭解決方案,如果你正在使用 MIUI 等深度定製的 ROM,可以選擇呼叫許可權時 「始終詢問」 。

原生 Android 雖然尚未提供該功能,但也不用 著急, App Ops 也能成為你們進行許可權管理的利器: 既然阻止不了流氓登門拜訪,我們不妨帶他到一間 空房間 。App Ops 可以為選中的應用生成「假許可權」,讓它誤以為已經獲得許可權,但只能返回空資料,這樣一來,不給許可權不讓用的問題也就迎刃而解。

使用小程式、PWA、快應用等代替原生 App 也是不錯的選擇 。這些應用在保留大部分核心功能的同時,請求的許可權更少,也沒有後臺駐留等煩惱,適合不想折騰黨。
慎用隱私換取便利
我想中國人可以更加開放,對隱私問題沒有那麼敏感。
應用許可權作為一個仍未受到足夠重視的話題,顯然還需要蘋果、Google、開發者、使用者乃至監管部門的協力配合才能得到有效管理。但在應用許可權之外,保護好個人隱私安全還需要我們處處小心。
比如時常被我們忽略的第三方應用授權問題 :當你選擇用 QQ、微信或微博等登入某個應用時,點選確認後它就會獲准收集你的個人資料。因此,對於那些只使用一次的 App,我們要慎之又慎。


比如慎用那些打著第三方客戶端旗號的 App: 它們往往會請求訪問全部個人資料、讀寫資料等隱私許可權。前幾天,某國產 Markdown 編輯器就被曝出 靜默關注 GitHub 賬號並 star 專案 的問題,在圈內引發了不少關注。

再比如儘可能避免個人資訊暴露 :在社交網路完全「隱身」雖然是個偽命題,但我們還是需要儘可能地減少洩露個人資訊。在大部分社交 App 中,你都可以在賬戶隱私中找到瀏覽許可權的相關設定,不妨遮蔽些點頭之交; 發微博或朋友圈時,事先清除照片的 Exif 資訊是個好習慣。在 iOS 上,你可以使用由 @RJ 製作的 快捷指令 ,在 Android上, Metadata Remover 是個不錯的選擇。


類似的技巧有很多,最重要的一點在於, 不要輕易成為某公司 CEO 口中「更願意用隱私換取便利」的人 。
少數派曾經發表過一篇廣受爭議的文章,題為 《為什麼我用膠布貼住了所有電子產品的攝像頭和麥克風》 。文中的行為當初看上去似乎有點極端,但很多人不知道的是,Facebook 創始人馬克·扎克伯格也是這樣做的:2016 年,扎克伯格為慶祝 Instagram 的月活使用者數突破 5 億大關,釋出了一張他在辦公室的照片。細心的網友們在這張照片中發現,他的筆記本攝像頭和麥克風都是用膠帶遮住的。

資料主導的時代,個人隱私安全的重要性越發凸顯。但遺憾的是,我們很少去思考自己給出的每一個許可權、登入的每一個第三方賬號和關聯的每一個郵箱對自己的個人隱私而言究竟意味著什麼。
在下一個京東金融 App 出現「錯誤開發」之前,我們缺少的其實並不是那捲膠帶,而是更加健全的隱私管理意識。
本文由 @Umi和 @Clyde聯合撰寫。
擴充套件閱讀:
- 恭喜你們發現了「京東金融」的「祕密」 by 遊戲打折情報
> 下載少數派 客戶端、關注 少數派公眾號,瞭解更多有趣的應用 :rocket:
> 特惠、好用的硬體產品,盡在 少數派sspai官方店鋪