關於Android應用開發的一些安全注意事項

原文地址: http://www.javacodegeeks.com/2014/05/simple-tips-to-secure-android-app.html

                  http://developer.android.com/training/articles/security-tips.html


Android已經具有內置到操作系統的安全功能,顯著降低應用安全問題的頻次和影響,但作爲應用程序開發人員,我們也需要注意在開發應用程序時的安全問題. 安全級別是取決於應用程序的類型和域. 這裏有我們需要注意的一些潛在的安全問題,我已經收集到了這篇文章中.


在這裏我列出來在開發應用中需要保護應用程序最常見的一些事項:

1.不要把私人或敏感數據儲存在SD卡。要存儲在內部存儲的文件,請使用以下的模式(Context.MODE_PRIVATE)openFileOutput&openFileInput方法。如果你真的想將數據存儲在SD卡,然後對它進行加密使用.


2.通過標識exported flag 爲false限制ContentProvider的使用,當然並不一定每個應用中都這樣使用,只是在沒有與其他應用交互的情況下要標識爲false.


3.限制的WebView來訪問本地數據。 HTML5和相關技術已經普遍應用在移動Web應用程序或混合型(Hybird)應用程序。對於Hybrid採用的WebView從本地存儲顯示的HTML或從服務器獲取HTML和的其他內容。對於webview重大安全問題是setAllowFileAccess()和setAllowContentAccess()方法.


4.通過BroadCastReceiver和Intent不傳遞敏感信息。使用LocalBroadcastManager的進程內/應用程序的廣播數據傳遞。 使用LocalBroadcastManager需要supportv4.jar.


5.不要在LogCat中打印敏感信息。喜歡的用戶名,密碼,Web服務的URL,請求或響應信息等細節.


6.在應用上線前去除沒有必要的log日誌


7.不接收處理一些惡意僞造的Intent.在之前的BroadcastReceiver的方法的OnReceive()方法中收到的Intent,驗證調用者的包名,動作等信息。


8.給Service加上對應的自定義權限.如果只有自己的應用使用時可以加上 exported = false(同ContentProvider).


9.限制Activity的訪問,.如果只有自己的應用使用時可以加上 exported = false.


10.應用發佈之前確保debug mode 爲false.


11.對於跨應用程序的功能,應用程序響應之前驗證調用.


12.服務器驗證方面可以使用基於Https的訪問.


13.當你覺得某些變量或者方法在Java層容易破解的時候,可以把對應變量改爲用JNI的方式去獲取


14.使用ProGuard 文件混淆代碼


15.移除from AndroidManifest.xml中不必要的權限.


16.慎用DexClassLoader 加載應用程序之外的dex文件.


轉載自:http://blog.csdn.net/t12x3456/article/details/28724571

發佈了45 篇原創文章 · 獲贊 6 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章