AndroidManifest.xml文件——安全屬性(app風險)

轉載請標明出處:
http://blog.csdn.net/sinat_15877283/article/details/50903606
本文出自: 【溫利東的博客】


起因:

昨天下午收到一封郵件,內容如下:

這裏寫圖片描述

還附上了一份《安全檢測報告》 。 ps: 我的內心是抓狂的!抓狂的!抓狂的!(有好幾個問題竟然是因爲拿不到我的清單文件就說我的程序存在異常)
鬱悶歸鬱悶,還是針對於這份檢測報告乖乖的寫了一篇 針對於該《安全檢測報告》的中問題的分析和解決方案。
這裏寫圖片描述

藉此事件,記錄一下關於 清單文件中幾個可能會引起安全問題的屬性。

乾貨內容:

  • android:debuggable 屬性的設置可能會引起 被動態調試的風險。
 <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        android:debuggable="true">

debuggable 屬性有兩個值“true|false”;
只有android:debuggable=”true”時我們纔可以在手機上調試Android程序。
但是當我們沒在AndroidManifest.xml中設置其debug屬性時:
使用Eclipse運行這種方式打包時其debug屬性爲true,使用Eclipse導出這種方式打包時其debug屬性爲法false.
在使用ant打包時,其值就取決於ant的打包參數是release還是debug.
因此在AndroidMainifest.xml中最好不設置android:debuggable屬性置,而是由打包方式來決定其值。
如果設置了 android:debuggable=”true” 那麼在正式打包時 把它設置成false吧!!!

  • android:allowBackup 屬性的設置可能會引起用數據被任意備份的風險
<application
            android:allowBackup="false"
            android:label="@string/app_name">
        ......
    </application>

Android API Level 8 及其以上 Android 系統提供了爲應用程序數據的備份和恢復功能,此功能的開關決定於該應用程序中 AndroidManifest.xml 文件中的 allowBackup 屬性值,其屬性值默認是 True。當 allowBackup 標誌爲 true 時,用戶即可通過 adb backup 和 adb restore 來進行對應用數據的備份和恢復。
一旦應用程序支持備份和恢復功能,攻擊者即可通過 adb backup 和 adb restore 進行恢復新安裝的同一個應用來查看聊天記錄等信息;對於支付金融類應用,攻擊者可通過此來進行惡意支付、盜取存款等;因此爲了安全起見,開發者務必將 allowBackup 標誌值設置爲 false 來關閉應用程序的備份和恢復功能,以免造成信息泄露和財產損失。

  • android:exported 屬性的設置可能會引起用組件導出的風險。
     android:exported=["true" | "false"]

android:exported 是Android中的四大組件 Activity,Service,Provider,Receiver 四大組件中都會有的一個屬性。
如果設置了導出權限,都可能被系統或者第三方的應用程序直接調出並使用。 組件導出可能導致登錄界面被繞過、信息泄露、數據庫SQL注入、DOS、惡意調用等風險。
主要作用是:是否支持其它應用調用當前組件。
默認值:如果包含有intent-filter 默認值爲true; 沒有intent-filter默認值爲false。
請參考:android:exported 屬性詳解

附加:

androidManifest.xml的一些屬性:

屬性 作用 其它
android:allowBackup 數據是否可備份 [true/false] 默認爲true 其屬性值默認是 True。當 allowBackup 標誌爲 true 時,用戶即可通過 adb backup 和 adb restore 來進行對應用數據的備份和恢復。 https://segmentfault.com/a/1190000002590577
android:debuggable 調試狀態 “使用Eclipse運行這種方式打包時其debug屬性爲true,使用Eclipse導出這種方式打包時其debug屬性爲法false.在使用ant打包時,其值就取決於ant的打包參數是release還是debug.” http://blog.csdn.net/hudashi/article/details/8698142
android:exported 是否支持其它應用調用當前組件 默認值:如果包含有intent-filter 默認值爲true; 沒有intent-filter默認值爲false。 http://blog.csdn.net/watermusicyes/article/details/46460347
android:launchMode 啓動模式 [“singleTop”/”singleTask”/”singleInstance”] “standard” (默認)
android:sharedUserId Linux用戶ID
android:installLocation 安裝位置 [“auto” / “internalOnly” / “preferExternal”] http://xin3336019-sina-com.iteye.com/blog/1845766

屬性太多了,就先寫到這裏吧…… 希望我的分享對你有幫助


轉載請標明出處:
http://blog.csdn.net/sinat_15877283/article/details/50903606

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