鴻蒙開發Ability Kit(程序訪問控制):【安全控件概述】

安全控件概述

安全控件是系統提供的一組系統實現的ArkUI組件,應用集成這類組件就可以實現在用戶點擊后自動授權,而無需彈窗授權。它們可以作為一種“特殊的按鈕”融入應用頁面,實現用戶點擊即許可的設計思路。

相較于動態申請權限的方式,安全控件可基于場景化授權,簡化開發者和用戶的操作,主要優點有:

  1. 用戶可掌握授權時機,授權范圍最小化。
  2. 授權場景可匹配用戶真實意圖。
  3. 減少彈窗打擾。
  4. 開發者不必向應用市場申請權限,簡化操作。

安全控件堅持僅采集實現業務功能所必須的個人數據,以服務于用戶的需求,幫助開發透明、可選、可控的隱私合規應用。

安全控件列表

目前系統提供三類安全控件:

  • [粘貼控件(PasteButton)]

    該控件對應剪貼板讀取特權。應用集成粘貼控件后,用戶點擊該控件,應用讀取剪貼板數據時不會彈窗提示。

    建議使用場景:粘貼控件可以用于任何應用需要讀取剪貼板的場景,避免彈窗提示對用戶造成干擾。

  • [保存控件(SaveButton)]

    該控件對應媒體庫寫入特權。應用集成保存控件后,用戶點擊該控件,應用會獲取10秒內單次訪問媒體庫特權接口的授權。

    建議使用場景:保存控件可以用于任何應用需要保存文件到媒體庫的場景(保存圖片、保存視頻等)。與Picker需要拉起系統應用再由用戶選擇具體路徑保存的方式不同,保存控件將直接保存到指定媒體庫路徑,操作更快捷。

  • [位置控件(LocationButton)]

    該控件對應精準定位特權。應用集成位置控件后,用戶點擊該控件,無論應用是否申請過或者被授予精準定位權限,都會在本次前臺期間獲得精準定位的授權,可以調用位置服務獲取精準定位。

    建議使用場景:應用不是強位置關聯應用(如導航、運動健康等),僅在部分前臺場景需要使用位置信息(如定位城市、打卡、分享位置等)。如果需要長時間使用或是在后臺使用位置信息,建議申請位置權限。

運作機制

整體方案由安全控件UI組件、安全控件管理服務、安全控件增強組成:

  • UI組件:實現了固定文字圖標的樣式,便于用戶識別,同時提供了相對豐富的定制化能力,便于開發者定制。
  • 控件管理服務:提供控件注冊管理能力、控件臨時授權機制、管理授權生效周期,確保應用后臺、鎖屏下無法注冊使用安全控件。
  • 安全增強:實現了地址隨機化、挑戰值檢查、回調UI框架復核控件信息、調用者地址檢查、組件防覆蓋、真實點擊事件校驗等機制,防止應用開發者通過混淆、隱藏、篡改、仿冒等方式濫用授權機制,泄露用戶隱私。

開發者調用接口時,運作流程如圖所示。

zh-cn_image_0000001722397992

  1. 應用開發者在ETS文件中集成安全控件,通過JS引擎解析后,在ArkUI框架中生成具體的控件。
  2. 安全控件注冊控件信息到安全控件管理服務,安全控件管理服務檢查控件信息的合法性。
  3. 用戶點擊事件分發到安全控件。
  4. 安全控件將點擊事件上報到安全控件管理服務。
  5. 安全控件管理服務根據控件種類對應不同權限,調用權限管理服務進行臨時授權。
  6. 授權成功后,安全控件回調OnClick通知應用層授權成功。
  7. 應用調用相應的特權操作,如獲取地理位置、讀取剪貼板信息、媒體庫中創建文件等。 不同類型的安全控件,對于權限的使用方式不同、授權的有效期也不同,詳情請參考開發指導。
  8. 對應的服務會調用權限管理服務或安全控件管理服務,獲取授權結果,返回鑒權結果。

約束與限制

安全控件因其自動授權的特性,為了保障用戶的隱私不被惡意應用獲取,針對安全控件作了很多的限制。應用開發者需保證安全控件在應用界面上清晰可見、用戶能明確識別,防止因覆蓋、混淆等因素導致授權失敗。

當因控件樣式不合法導致授權失敗的情況發生時,請開發者檢查設備錯誤日志,過濾關鍵字"SecurityComponentCheckFail"可以獲取具體原因。

說明: 請開發者關注過濾條件下,所有級別的日志。
在這里插入圖片描述

可能會導致授權失敗的問題(包括但不限于):

  • 字體、圖標尺寸過小。
  • 安全控件整體尺寸過大。
  • 字體、圖標、背景按鈕的顏色透明度過高。
  • 字體或圖標與背景按鈕顏色過于相似。
  • 安全控件超出屏幕、超出窗口等,導致顯示不全。
  • 安全控件被其他組件或窗口遮擋。
  • 安全控件的父組件有類似變形模糊等可能導致安全控件顯示不完整的屬性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38324.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

構造,析構,拷貝【類和對象(中)】

P. S.:以下代碼均在VS2019環境下測試,不代表所有編譯器均可通過。 P. S.:測試代碼均未展示頭文件stdio.h的聲明,使用時請自行添加。 博主主頁:LiUEEEEE ??????????????????? ?? …

Excel_VBA編程

在Excel中,VBA(Visual Basic for Applications)是一種強大的工具,可以用來自動化各種任務。下面介紹一些常用的VBA函數和程序結構: 常用函數 MsgBox:用于顯示消息框。 MsgBox "Hello, World!"In…

【python全棧系列】day07-python數據類型-集合

Python中的集合(Set)是一個無序的、不包含重復元素的數據結構。它主要用于數學上的集合操作,如并集、交集、差集和對稱差集等。集合的基本用途包括去重和關系測試。 1、集合的特性 無序性:集合中的元素是無序的,這意…

gin-vue -admin 初始化安裝后 進入 后臺首頁報錯

報錯原因: 因為 我是使用的phpstudy 小皮的數據庫 默認的是MySam 的引擎 mysql 引擎需要是 innoDB 解決辦法 : 在linux 的環境下 配置一個數據庫 , 我是用的是vmware 虛擬機

深入理解分布式搜索引擎 ElasticSearch,并能基于 ELK+Kafka 搭建分布式?志收集系統

Elasticsearch是一個基于Lucene的分布式、多租戶能力的全文搜索引擎。它提供了RESTful web接口和分布式多用戶能力的全文搜索引擎,基于Apache許可證發行。以下是對Elasticsearch的深入理解以及如何基于ELK(Elasticsearch、Logstash、Kibana)加…

npm緩存深度解析:理解、使用與清除指南

🌟 npm緩存深度解析:理解、使用與清除指南 npm(Node Package Manager)是JavaScript編程語言的包管理器,廣泛用于Node.js應用程序。它不僅幫助我們安裝和管理項目依賴,還擁有一個強大的緩存機制來加速這一過…

[論文筆記] BlendedDataset blend goes out of bounds for list 34 for valid split

報錯&#xff1a; Traceback (most recent call last):File "/mnt/cpfs/kexin/dlc_code/qwen2/Pai-Megatron-Patch/examples/qwen2/pretrain_qwen.py", line 211, in <module> (<megatron.core.datasets.gpt_dataset.GPTDataset object at 0x7f491886bf10&…

《昇思25天學習打卡營第8天|CarpeDiem》

《昇思25天學習打卡營第8天|CarpeDiem》 模型訓練構建數據集定義神經網絡模型定義超參、損失函數和優化器超參損失函數優化器 訓練與評估 打卡 今天是昇思25天學習打卡營的第8天&#xff0c;終于迎來 模型訓練 的部分了&#xff01;&#xff01;&#xff01; 興奮 發癲 模型訓…

SSH遠程命令執行漏洞(CVE-2024-6387)驗證

0x01、漏洞名稱 OpenSSH遠程代碼執行漏洞 &#xff08;CVE-2024-6387&#xff09; 0x02、漏洞簡介 ? OpenSSH是SSH&#xff08;Secure SHell&#xff09;協議的開源實現&#xff0c;它通過不安全的網絡在兩個不受信任的主機之間提供安全的加密通信。OpenSSH 廣泛用于基于Un…

數據庫。

數據庫安全性 論述題5’ 編程題10’ sql語言實現權限控制 一、概述 1、不安全因素 &#xff08;1&#xff09;?授權對數據庫的惡意存取和破壞 &#xff08;2&#xff09;數據庫中重要的數據泄露 &#xff08;3&#xff09;安全環境的脆弱性 2、?主存取控制?法 gr…

【ajax實戰06】進行文章發布

本文章目標&#xff1a;收集文章內容&#xff0c;并提交服務器保存 一&#xff1a;基于form-serialize插件收集表單數據 form-serialize插件僅能收集到表單數據&#xff0c;除此之外的數據無法收集到 二&#xff1a;基于axios提交到服務器保存 三&#xff1a;調用alert警告…

基于KMeans的航空公司客戶數據聚類分析

&#x1f490;大家好&#xff01;我是碼銀~&#xff0c;歡迎關注&#x1f490;&#xff1a; CSDN&#xff1a;碼銀 公眾號&#xff1a;碼銀學編程 實驗目的和要求 會用Python創建Kmeans聚類分析模型使用KMeans模型對航空公司客戶價值進行聚類分析會對聚類結果進行分析評價 實…

Linux修煉之路之進程概念,fork函數,進程狀態

目錄 一&#xff1a;進程概念 二&#xff1a;Linux中的進程概念 三&#xff1a;用getpid(),getppid()獲取該進程的PID,PPID 四&#xff1a;用fork()來創建子進程 五&#xff1a;操作系統學科的進程狀態 六&#xff1a;Linux中的進程狀態 接下來的日子會順順利利&#xf…

【區塊鏈+基礎設施】深證金融區塊鏈平臺 | FISCO BCOS應用案例

作為數據交換密集型行業&#xff0c;資本市場是區塊鏈創新應用的重要領域&#xff0c;區塊鏈技術可以有效解決諸多痛點問題。比 如&#xff0c;針對信息不對稱的問題&#xff0c;區塊鏈技術通過將整個企業的經營活動信息上鏈&#xff0c;有效降低盡調成本&#xff0c;為投融資決…

配置windows環境下獨立瀏覽器爬蟲方案【不依賴系統環境與chrome】

引言 由于部署瀏覽器爬蟲的機器瀏覽器版本不同&#xff0c;同時也不想因為部署了爬蟲導致影響系統瀏覽器數據&#xff0c;以及避免爬蟲過程中遇到的chrome與webdriver版本沖突。我決定將特定版本的chrome瀏覽器與webdriver下載到項目目錄內&#xff0c;同時chrome_driver在初始…

我使用 GPT-4o 幫我挑西瓜

在 5 月 15 日&#xff0c;OpenAI 旗下的大模型 GPT-4o 已經發布&#xff0c;那時網絡上已經傳開&#xff0c; 但很多小伙伴始終沒有看到 GPT-4o 的體驗選項。 在周五的時候&#xff0c;我組建的 ChatGPT 交流群的伙伴已經發現了 GPT-4o 這個選項了&#xff0c;是在沒有充值升…

NSSCTF-Web題目21(文件上傳-phar協議、RCE-空格繞過)

目錄 [NISACTF 2022]bingdundun~ 1、題目 2、知識點 3、思路 [FSCTF 2023]細狗2.0 4、題目 5、知識點 6、思路 [NISACTF 2022]bingdundun~ 1、題目 2、知識點 文件上傳&#xff0c;phar偽協議 3、思路 點擊upload&#xff0c;看看 這里提示我們可以上傳圖片或壓縮包&…

應對.Kastaneya勒索病毒:保護您的數據安全

導言&#xff1a; 隨著科技的發展&#xff0c;網絡安全問題也日益嚴峻。最近&#xff0c;一種名為.Kastaneya的勒索病毒開始在網絡上出現&#xff0c;對用戶的計算機和數據造成嚴重威脅。本文91數據恢復將介紹.Kastaneya勒索病毒的特點及其傳播方式&#xff0c;并提供一些有效…

Unity 解包工具(AssetStudio/UtinyRipper)

文章目錄 1.UtinyRipper2.AssetStudio 1.UtinyRipper 官方地址&#xff1a; https://github.com/mafaca/UtinyRipper/ 下載步驟&#xff1a; 2.AssetStudio 官方地址&#xff1a; https://github.com/Perfare/AssetStudio 下載步驟&#xff1a;

【HarmonyOS NEXT】鴻蒙多線程Sendable開發

非共享模塊在同一線程內只加載一次&#xff0c;在不同線程間會加載多次&#xff0c;單例類也會創建多次&#xff0c;導致數據不共享&#xff0c;在不同的線程內都會產生新的模塊對象。 基礎概念 Sendable協議 Sendable協議定義了ArkTS的可共享對象體系及其規格約束。符合Sen…