---
description: '#4 畢竟它們跟你的 app 有一樣的權限'
---

# 你在用的 SDK 值得信任嗎？

關於第三方套件，我們通常是拿來就用，即使是開源的 SDK，也不會認真檢查裡面的寫法。這種態度有點危險。

為何我們要默認別人寫的東西都是良好、善意、沒有問題的呢？畢竟這些套件是跑在你的 app 裡，擁有一樣的權限。例如讀取 sandbox 裡的資料、Keychain，以及任何使用者允許而取得的資料。萬一出了狀況，自己得負上很大責任。

就算所使用的第三方套件的原始程式碼沒問題，你又怎麼知道在下載及安裝的過程中沒有被修改呢？

對於有心人士來說，攻擊單一的使用者很難，相對地，集中火力攻破開發者效益就高。

[Felix Krause](https://krausefx.com/about) 的 [這篇文章](https://krausefx.com/blog/trusting-sdks) 就詳細闡述你在安裝 SDK 時可能遭受的攻擊、程式碼的修改等等。

講個很壞的情境：如果你去參加一場 conference，用了那邊的 Wi-Fi，下載的程式時走 HTTP 連線沒加密，結果被惡意的 router 替換掉。你剛好安裝到自己的 app 裡，然後上架，給成千上萬的使用者使用。

那麼該怎麼辦呢？除了自己提高警覺以外，[這裡](https://github.com/trusting-sdks/https)列出了常見的第三方 SDK，供你參考。
