歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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中。

    <!-- 在SDCard中創建與刪除文件權限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
 
    <!-- 往SDCard寫入數據權限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

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

數據安全最重要的是解決數據加密的問題,密鑰存儲問題,選擇合適的加密方法。加密方法,密鑰存儲建議使用Native本地庫實現。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved