天天看點

android應用安全——資料安全

 資料安全包含資料庫資料安全、SD卡資料(外部存儲)安全、RAM資料(内部存儲)安全。

       android中操作資料庫可使用SQLiteOpenHelper或ContentProvider的方式。使用SQLiteOpenHelper操作資料庫時,資料庫存放在data/data/<packagename>/databases/目錄,這個目錄隻能是應用自己通路,相對是安全的,但是root使用者,這個目錄也是透明的,是以,私密資料也要做到加密存儲。使用ContentProvider操作資料時,本質上也是使用SQLiteOpenHelper,這時需要在AndroidManifest.xml來注冊這個Provider,注冊Provider就對外提供了通路這個資料庫的接口,其他應用就可以通路這個資料庫了,為了資料庫資料安全就需要控制通路,如果不想對外提供通路隻需在AndroidManifest.xml注冊Provider時設定android:exported="false";如果想提供對外通路能力,最好設定android:readPermission和android:writePermission這兩個屬性,來分别指定對這個ContentProvider中資料讀和寫操作的權限。android資料庫還要預防資料注入的攻擊。

    SD卡是一個公共的存儲空間,隻要申請了如下權限,就可以操作SD卡。也就是說SD卡資料是最不安全的,很容易被其他應用讀取篡改,如果SD中存放資料,建議存放一些無關緊要的資料,重要資料加密存儲或者存放到RAM中。

    RAM資料存儲在/data/data/<package name>/files目錄中,隻允許目前應用通路,安全性較好,但是root後的機器也是可以被讀取篡改的,這裡的資料也不是絕對的安全,RAM的敏感資料也要加密存儲。

    資料安全最重要的是解決資料加密的問題,密鑰存儲問題,選擇合适的加密方法。加密方法,密鑰存儲建議使用

Native本地庫實作。

/**

* @author 張興業

*  http://blog.csdn.net/xyz_lmn

*  android開發進階群:241395671

*/

     本文轉自xyz_lmn51CTO部落格,原文連結:http://blog.51cto.com/xyzlmn/1230743,如需轉載請自行聯系原作者