開發 android app 有幾個關於資安的注意事項,大家可參考囉。
- 不要儲存敏感資料,如非儲存不可,儲存於作業系統保護之區域並加密。加密的key和編碼過的文件不要放在一起
- 用於加解密之key,android 存放於so或Android Keystore Provider
- 用來加密的key,可再加上使用者的密碼
- 傳輸重要參數應加密
- Log.d、NSLog在release版不要使用。
- 檢查作業系統是否被破解(root)
- 使用Sqlite應注意Client SQL Injection
- 檢查app權限uses permission是否適當
- 如有html5 需注意LocalStorage儲放XSS攻擊程式與shell code
- 遠端刪除功能防止手機遺失。
- 加解密method應為private。
- 只允許連到指定的連結(如果你的專案允許的話)
- android 開啟程式碼混淆ProGuard,避免被反組譯太容易看到程式碼
- 如無需要,關閉 Allow Backup,不允許android備份至雲端或電腦。
- 傳輸GCM資訊應使用HTTPS
- android:debuggable relase版不可為true
- 執行時檢查是否 debug 模式,android.os.Debug.isDebuggerConnected(),防止使用者反向編譯後再重新執行 PackageManager.GET_SIGNATURES
- 重要交易採用多因素認證(例簡訊傳送認證碼)
- 作業系統的保護是不安全的
- 上位或公司的政策「簡單勝於安全」可能是照成安全問題的原因,例如每次都要輸入密碼太麻煩
參考資料
沒有留言:
張貼留言