W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
HarmonyOS 中所有的應(yīng)用均在應(yīng)用沙盒內(nèi)運行。默認情況下,應(yīng)用只能訪問有限的系統(tǒng)資源,系統(tǒng)負責(zé)管理應(yīng)用對資源的訪問權(quán)限。
應(yīng)用權(quán)限管理是由接口提供方(Ability)、接口使用方(應(yīng)用)、系統(tǒng)(包括云側(cè)和端側(cè))以及用戶等多方共同參與的整個流程,保證受限接口是在約定好的規(guī)則下被正常使用,避免接口被濫用而導(dǎo)致用戶、應(yīng)用和設(shè)備受損。
config.json
中使用“reqPermissions
”屬性對需要的權(quán)限逐個進行聲明。config.json
中逐個聲明。config.json
中聲明的權(quán)限,應(yīng)用就無法獲得此權(quán)限的授權(quán)。動態(tài)申請敏感權(quán)限基于用戶可知可控的原則,需要應(yīng)用在運行時主動調(diào)用系統(tǒng)動態(tài)申請權(quán)限的接口,系統(tǒng)彈框由用戶授權(quán),用戶結(jié)合應(yīng)用運行場景的上下文,識別出應(yīng)用申請相應(yīng)敏感權(quán)限的合理性,從而做出正確的選擇。
即使用戶向應(yīng)用授予了請求的權(quán)限,應(yīng)用在調(diào)用受此權(quán)限管控的接口前,也應(yīng)該先檢查自己有無此權(quán)限,而不能把之前授予的狀態(tài)持久化,因為用戶在動態(tài)授予后還可以通過設(shè)置取消應(yīng)用的權(quán)限。
有關(guān)于應(yīng)用動態(tài)申請敏感權(quán)限的詳細信息,請參閱動態(tài)申請權(quán)限。
HarmonyOS 為了保證應(yīng)用對外提供的接口不被惡意調(diào)用,需要對調(diào)用接口的調(diào)用者進行鑒權(quán)。
大多情況下,系統(tǒng)已定義的權(quán)限滿足了應(yīng)用的基本需要,若有特殊的訪問控制需要,應(yīng)用可在config.json
中以"defPermissions": []
屬性來定義新的權(quán)限,并通過“availableScope
”和“grantMode
”兩個屬性分別確定權(quán)限的開放范圍和授權(quán)方式,使得權(quán)限定義更加靈活且易于理解。有關(guān) HarmonyOS 權(quán)限開放范圍和授權(quán)方式詳細的描述,請參閱權(quán)限授予方式字段說明和權(quán)限限制范圍字段說明。
為了避免應(yīng)用自定義新權(quán)限出現(xiàn)重名的情況,建議應(yīng)用對新權(quán)限的命名以包名的前兩個字段開頭,這樣可以防止不同開發(fā)者的應(yīng)用間出現(xiàn)自定義權(quán)限重名的情況。
config.json
里對應(yīng)的 Ability 中配置"permissions": ["權(quán)限名"]屬性,即可實現(xiàn)保護整個 Ability 的目的,無指定權(quán)限的應(yīng)用不能訪問此 Ability。verifyPermission
(String permissionName
, int pid
, int uid
)來對 uid 標(biāo)識的調(diào)用者進行鑒權(quán)。intent
拉起系統(tǒng) UI 界面由用戶交互、應(yīng)用自己生成uuid
代替設(shè)備 ID 等)。config.json
中按格式聲明。Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: