本篇文章更新時間:2026/03/29
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
白宮新 App 被反編譯後,我看到的三個不安訊號
副標題:從 WordPress 後端、第三方追蹤到注入式 WebView,這款官方政府 App 暗藏了哪些細節?
編輯前言:這篇讀後筆記源自工程師 TheRealLo 的深度拆解文章:I Decompiled the White House's New App。他反編譯了美國白宮推出的官方 App,結果內容比想像中更「商業化」、更「追蹤導向」,甚至帶有一些令人皺眉的技術設計。
核心觀點(Key Takeaways)
- 這是一款以 React Native + Expo + WordPress REST API 為基礎的標準內容 App,技術構成意外地「平民」。
- App 內置 完整 GPS 追蹤流水線(由 OneSignal 控制),雖然預設關閉,但只要一個 API 即可啟用。
- WebView 會在所有外部網站注入 JavaScript,用來「刪掉」GDPR、Cookie Banner、登入牆與付費牆。
- 各種第三方服務混雜:YouTube 內嵌腳本來自個人 GitHub Page、Elfsight widget、Mailchimp、Uploadcare、Truth Social 等。
- 缺乏安全強化:無憑證釘選、甚至留有開發者 IP、localhost 等開發殘留。
深入解析
這次的反編譯結果最令我驚訝的並不是技術,而是「技術選擇背後的治理尺度」。
原文中一段話尤其醒目:
"An official United States government app is injecting CSS and JavaScript into third-party websites to strip away their cookie consent dialogs, GDPR banners, login walls, signup walls, and paywalls."
換句話說,這款 App 在使用者瀏覽外部網站時,會偷偷加載一段程式碼,把各種隱私提示、政策告知、付費限制一併清掉。對一般商業 App 來說,這種手法已經算激進;但對「官方政府 App」而言,更是極為罕見。
1. 基礎架構:完全商規、完全一般化
這款 App 採用 Expo(SDK 54)、Hermes 引擎、React Native、WordPress 後端。後台 API 的命名空間是 whitehouse/v1,基本上是一套大的內容展示平台——新聞、直播、政策頁、社群匯入,各種你能想到的資訊聚合介面。
技術上沒有什麼神祕的地方,甚至比一般新創公司還「標準化」。
2. WebView 注入:悄悄移除 Cookie Banner 與付費牆
App 內嵌的 WebView 每次載入網頁時,會強制注入以下邏輯:
- 移除 Cookie banner、GDPR 對話框、OneTrust 隱私彈窗
- 移除登入牆、付費牆(paywalls)
- 移除 CMP(Consent Management Platform)
- 重寫 CSS 讓頁面強制可捲動
- 使用 MutationObserver 持續偵測並刪除後續新增元素
這段行為不僅侵犯網站原設計,也讓我想到:如果用戶透過官方 App 瀏覽新聞,最終看到的頁面其實已經被「消毒」過了。
3. 隱藏的 GPS 追蹤流水線:OneSignal 的角色
原文指出,雖然白宮 App 自稱使用 withNoLocation plugin,「不會蒐集定位」,但反編譯 APK 後卻發現完整的追蹤鏈都在:
- foreground:每 4.5 分鐘抓一次定位
- background:每 9.5 分鐘抓一次定位
- 蒐集:經緯度、精度、時間戳、前景/背景狀態、GPS 或網路定位
- 同步:回傳至 OneSignal 伺服器
最關鍵的是,JS bundle 裡有 setLocationShared(true) 的引用,也就是只要在某個情境下切換一個開關,就會開始完整 GPS 追蹤。
對政府 App 來說,這樣的能力放在那裡本身就是一個風險。
4. 第三方服務大雜燴:安全邊界模糊
我讀到以下段落時有點傻住:
- YouTube 播放器腳本載於一位開發者的 GitHub Pages(lonelycpp.github.io)
- Elfsight widget 的 JavaScript 可動態更新
- Mailchimp 處理 email
- Uploadcare host 圖片
- Truth Social 直接硬編 HTML embed
如果其中任何一個第三方被入侵,App 內的 WebView 就可能執行惡意程式。
5. 開發殘留、缺乏憑證釘選
包括:
- localhost URL 出現在 bytecode 中
- 開發者 IP(10.4.4.109)硬編進資源
- expo-dev-client、devmenu 都編進 production build
- 沒有 SSL pinning
雖然這些不違法,但對「官方政府產品」來說很不尋常。
筆者心得與啟發
讀完原文,我一直在想:「如果今天不是白宮,而是一家一般 App,這些行為會不會引起更強烈的反彈?」
這篇分析給我三個重要啟示:
- 第一,政府數位服務的安全標準應該比商業 App 更高,而不是更低。從來源碼到第三方依賴,整體治理要更嚴謹。
- 第二,「功能未啟用 ≠ 無風險」。GPS pipeline、WebView 注入腳本都是典型例子,他們都已植入,只是預設沒有執行。
- 第三,打造 App 並不等於打造信任。尤其是政府 App,透明度不足時,反而容易引發更多疑慮。
如果你對 App 安全、政府數位治理,或第三方 SDK 的風險感興趣,非常推薦一讀原文。它讓我重新思考:官方 App 是否也該接受第三方安全審計?甚至要更加公開透明?
這篇反編譯報告雖然不是指控,但就是這樣的技術細節,讓我們更能理解「數位信任」是怎麼被建立——也怎麼被破壞的。
