安卓組件漏洞防禦注意事項

防止利用系統組件漏洞

原則:最小化組件暴露

設置組件訪問權限安全

組件傳輸數據驗證ide

暴露組件的代碼檢查編碼

activity編碼安全

私有activity:

(1)不聲明taskAffinity對象

(2)不聲明 LaunchModeit

(3) 設置exported爲falseio

(4) 保證intent發送時的安全性,肯定Intent是來自本應用程序ast

(5)在確保本應用程序發送Intent的時候,能夠防止一些敏感信息service

(6)啓動Activity的時候不設置FLAG_ACTIVITY_NEW_TASK權限

(7) 使用顯示Intent與指定的類的方式來調用一個activity請求

(8)敏感的信息放置在extra中發送

(9)在onActivityResult的時候應對返回的data當心處理

公共activity:

(1)設置exported爲true

(2)接到Intent時注意當心處理

(3)finish時在Intent中放置一些敏感信息

夥伴activity:

(1)不聲明taskAffinity

(2)不聲明 LaunchMode

(3) 不設置intent-filler設置exported爲true

(4) 使用白名單機制驗證應用簽名

(5)處理Partner Activity來的Intent時當心注意

(6)只返回給Partner Activity一些公開信息

另外一方Partner Activity啓動該activity

(1)不適用FLAG_ACTIVITY_NEW_TASK

(2)extra中不放置一些公開與不敏感的信息

(3) 使用顯示intent,具體到報名、類名

(4) 使用startActivityForResult()啓動Partner Activity,返回時能夠作校驗

內部activity:

(1)定義Activity的簽名權限爲signnature

(2)不聲明taskAffinity

(3) 不聲明 LaunchMode

(4) 不設置intent-filler設置exported爲true

(5)驗證簽名

(6)驗證intent傳輸的數據要當心

Brocast Recevier編碼安全

Brocast Recevier分爲:私有、公共、內部

也可分爲靜態廣播和動態廣播

私有廣播:

(1)不設置intent-filler設置exported爲false

(2)接收處理Intent信息的時候注意信息安全

(3) 能夠防止一些重要的信息在Intent中傳輸,全部處理完畢後須要終止掉廣播

公共廣播:

(1)設置exported爲true

(2)獲取Intent的時候當心處理

(3) return result的時候別防止敏感信息

內部廣播:

(1)定義一個內部的Signature Permission來發送、接受廣播

(2)設置exported爲true

(3) 動態、靜態廣播註冊的時候也須要聲明Signature Permission。

Service編碼安全

私有service:

(1)設置exported爲false

(2)接收處理Intent信息的時候注意數據的敏感性和來源的正確性

(3) 確保在同一個應用中的Intent才能夠防止敏感信息

公共service:

(1)設置exported爲true

(2)發送接收處理Intent信息的時候注意敏感信息

(3) return的時候不放置敏感信息

合做service:

(1)設置exported爲true

(2)處理Intent信息的時候當心

(3) 注意返回消息,特別是敏感信息的接收對象

內部service:

(1)創建一個signature的permission

(2)給待啓動的service添加permission

(3) 不設置intent-filler設置exported爲true

(4)在不一樣的內部應用中使用相同的簽名

(5)使用intent發送、返回數據的時候注意敏感信息的處理

Provider編碼安全:

私有content provide:

(1)2.2以前的版本別使用

(2)設置exported爲false

(3) 只能在同一個應用程序中進行敏感信息的發送和接收

公共content provide:

(1)返回result時不放置敏感信息

(2)設置exported爲true

(3) 接收輸入條件時當心

合做content provide:

(1)在代碼中對使用方的包名和簽名作檢驗操做

(2)設置exported爲true

(3) 接收處理敏感信息時當心

(4)確承認以公開合做夥伴的信息才作返回

內部content provide:

(1)定義一個signature的permission

(2)設置該content provide須要此permission

(3) 設置exported屬性爲true

(4) 代碼內部檢測傳入應用的簽名和包名的合法性

(5)傳入的參數信息與返回信息注意敏感數據泄露

部分content provide:

(1)2.2以前的版本別使用

(2)設置exported爲false

(3) 指定容許訪問的uri權限授予臨時路徑

(4)處理接收到的請求數據和安全,即便已經得到應用程序的監視受權

(5)返回數據時只返回部分開放的內容

(6)給予指定的uri的intent臨時訪問權限

相關文章
相關標籤/搜索