鸿蒙开发(NEXT/API 12)【ArkWeb接入密码保险箱】系统安全

news2024/11/27 13:32:30

网页中的登录表单,登录成功后,用户可将用户名和密码保存到鸿蒙系统密码保险箱中。再次打开该网页时,密码保险箱可以提供用户名、密码的自动填充。

手机使用场景

  1. 在网站中输入用户名、密码,登陆成功后,ArkWeb会提示将用户名和密码保存到密码保险箱中。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 再次打开相同的网站,点击用户名或者密码框中时,会弹出密码保险箱的填充提示。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 可以选择提示框中的用户名,通过认证,就能直接在网页中填入之前保存的用户名、密码。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 点击“使用其他账号”,选择密码保险箱中保存的其他账号。认证后在网页中填入选择的用户名、密码。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  5. 点击“手动输入”或者提示框之外的地方,会弹出小艺输入法,会提示可用于密码填充的用户名和钥匙图标。

    点击用户名可触发在网页中填入用户名、密码;点击钥匙图标,进入选择账号的界面。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PC使用场景

  1. 在网站中输入用户名、密码,登陆成功后,ArkWeb会提示将用户名和密码保存到密码保险箱中。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 再次打开相同的网站,点击用户名或者密码框中时,会弹出密码保险箱的下拉框.

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 选择下拉框中的用户名,通过认证,就能直接在网页中填入之前保存的用户名、密码。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 也可以点击下拉框中的“使用其他账号”,选择密码保险箱中保存的其他账号。认证后在网页中填入选择的用户名、密码。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网页密码保存规格

1、ArkWeb依赖密码表单提交成功后,触发页面跳转到其他页面,才能触发密码保存。

2、Native应用通过ArkWeb实现H5登入,登录成功后请勿立即销毁ArkWeb实例,将无法提示密码保存。

网页密码表单规格

ArkWeb使用Chromium智能算法,自动识别网页中的用户名、密码元素。算法对用户名、密码表单的设计,有一定的约束。

推荐的密码登录表单

  1. 使用静态的登录页面或登录表单元素,而不是通过js脚本在页面中动态插入、等表单元素。

  2. 用户名密码输入框均使用元素实现,并集成在同一个内,默认可编辑,登录场景有且最多有一个type="password"类型的元素。

  3. 点击按钮触发登录,登录成功后,应当触发跳转到新的页面。

  4. 用户名框携带autocomplete=“username”,携带id或name属性,并采用如下建议的值,便于算法推断用户名元素:

const char* const kUsernameLatin[] = {
    "gatti",      "uzantonomo",   "solonanarana",    "nombredeusuario",
    "olumulo",    "nomenusoris",  "enwdefnyddiwr",   "nomdutilisateur",
    "lolowera",   "notandanafn",  "nomedeusuario",   "vartotojovardas",
    "username",   "ahanjirimara", "gebruikersnaam",  "numedeutilizator",
    "brugernavn", "benotzernumm", "jinalamtumiaji",  "erabiltzaileizena",
    "brukernavn", "benutzername", "sunanmaiamfani",  "foydalanuvchinomi",
    "mosebedisi", "kasutajanimi", "ainmcleachdaidh", "igamalomsebenzisi",
    "nomdusuari", "lomsebenzisi", "jenengpanganggo", "ingoakaiwhakamahi",
    "nomeutente", "namapengguna"};

const char* const kUserLatin[] = {
    "user",   "wosuta",   "gebruiker",  "utilizator",
    "usor",   "notandi",  "gumagamit",  "vartotojas",
    "fammi",  "olumulo",  "maiamfani",  "cleachdaidh",
    "utent",  "pemakai",  "mpampiasa",  "umsebenzisi",
    "bruger", "usuario",  "panganggo",  "utilisateur",
    "bruker", "benotzer", "uporabnik",  "doutilizador",
    "numake", "benutzer", "covneegsiv", "erabiltzaile",
    "usuari", "kasutaja", "defnyddiwr", "kaiwhakamahi",
    "utente", "korisnik", "mosebedisi", "foydalanuvchi",
    "uzanto", "pengguna", "mushandisi"};

const char* const kUsernameNonLatin[] = {
 "用户名", "کاتيجونالو", "用戶名", "የተጠቃሚስም",
 "логин", "اسمالمستخدم", "נאמען", "کاصارفکانام",
 "ユーザ名", "όνομα χρήστη", "brûkersnamme", "корисничкоиме",
 "nonitilizatè", "корисничкоиме", "ngaranpamaké", "ຊື່ຜູ້ໃຊ້",
 "användarnamn", "యూజర్పేరు", "korisničkoime", "пайдаланушыаты",
 "שםמשתמש", "ім'якористувача", "کارننوم", "хэрэглэгчийннэр",
 "nomedeusuário", "имяпользователя", "têntruynhập", "பயனர்பெயர்",
 "ainmúsáideora", "ชื่อผู้ใช้", "사용자이름", "імякарыстальніка", "lietotājvārds",
 "потребителскоиме", "uporabniškoime", "колдонуучунунаты", "kullanıcıadı",
 "පරිශීලකනාමය", "istifadəçiadı", "օգտագործողիանունը", "navêbikarhêner", "ಬಳಕೆದಾರಹೆಸರು",
 "emriipërdoruesit", "वापरकर्तानाव", "käyttäjätunnus", "વપરાશકર્તાનામ", "felhasználónév",
 "उपयोगकर्तानाम", "nazwaużytkownika", "ഉപയോക്തൃനാമം", "სახელი", "အသုံးပြုသူအမည်",
 "نامکاربری", "प्रयोगकर्तानाम", "uživatelskéjméno", "ব্যবহারকারীরনাম", 
 "užívateľskémeno", "ឈ្មោះអ្នកប្រើប្រាស់"};

const char* const kUserNonLatin[] = {
 "用户", "użytkownik", "tagatafaʻaaogā", "دکارونکيعکس",
 "用戶", "užívateľ", "корисник", "карыстальнік",
 "brûker", "kullanıcı", "истифода", "អ្នកប្រើ",
 "ọrụ", "ተጠቃሚ", "באַניצער", "хэрэглэгчийн",
 "يوزر", "istifadəçi", "ຜູ້ໃຊ້", "пользователь",
 "صارف", "meahoʻohana", "потребител", "वापरकर्ता",
 "uživatel", "ユーザー", "מִשׁתַמֵשׁ", "ผู้ใช้งาน",
 "사용자", "bikaranîvan", "колдонуучу", "વપરાશકર્તા",
 "përdorues", "ngườidùng", "корисникот", "उपयोगकर्ता",
 "itilizatè", "χρήστης", "користувач", "օգտվողիանձնագիրը",
 "használó", "faoiúsáideoir", "შესახებ", "ব্যবহারকারী",
 "lietotājs", "பயனர்", "ಬಳಕೆದಾರ", "ഉപയോക്താവ്",
 "کاربر", "యూజర్", "පරිශීලක", "प्रयोगकर्ता", "användare",
 "المستعمل", "пайдаланушы", "အသုံးပြုသူကို", "käyttäjä"};

const char* const kTechnicalWords[] = {
    "uid",         "newtel",     "uaccount",   "regaccount",  "ureg",
    "loginid",     "laddress",   "accountreg", "regid",       "regname",
    "loginname",   "membername", "uname",      "ucreate",     "loginmail",
    "accountname", "umail",      "loginreg",   "accountid",   "loginaccount",
    "ulogin",      "regemail",   "newmobile",  "accountlogin"};

const char* const kWeakWords[] = {"id", "login", "mail"};
  1. 登录场景,密码框携带autocomplete=“current-password”。

  2. 用户名框下面紧挨密码框,中间不要插入其他元素(包括不可见的)。

  3. 静态页面中的用户名密码框不可见,则需要确保在静态页面中就存在,而不是跳转页面时插入密码表单。

【案例1】:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

【案例2】:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

不支持自动填充的密码登录表单类型

  1. 初始页面内无用户名密码表单元素,点击登录跳转页面后,新增非类型的用户名密码表单。

  2. 密码输入框携带了autocomplete=“new-password”属性。

  3. 用户名输入框type=“number”,验证码输入框type=“number”,无密码输入框。

  4. 用户名和密码元素中间存在其他元素,算法推断出的用户名元素,不符合用户预期。

  5. 网页通过javacript脚本,变更了元素的焦点或者修改元素的value。

  6. 用户名元素上id、name、label内容中匹配到如下密码类型标识:

const char* const kNegativeLatin[] = {
    "pin",    "parola",   "wagwoord",   "wachtwoord",
    "fake",   "parole",   "givenname",  "achinsinsi",
    "token",  "parool",   "firstname",  "facalfaire",
    "fname",  "lozinka",  "pasahitza",  "focalfaire",
    "lname",  "passord",  "pasiwedhi",  "iphasiwedi",
    "geslo",  "huahuna",  "passwuert",  "katalaluan",
    "heslo",  "fullname", "phasewete",  "adgangskode",
    "parol",  "optional", "wachtwurd",  "contrasenya",
    "sandi",  "lastname", "cyfrinair",  "contrasinal",
    "senha",  "kupuhipa", "katasandi",  "kalmarsirri",
    "password", "loluszais",  "tenimiafina",
    "second", "passwort", "middlename", "paroladordine",
    "codice", "pasvorto", "familyname", "inomboloyokuvula",
    "modpas", "salasana", "motdepasse", "numeraeleiloaesesi",
    "captcha"};

const char* const kNegativeNonLatin[] = {
    "fjalëkalim", "የይለፍቃል", "كلمهالسر", "գաղտնաբառ",
    "пароль", "পাসওয়ার্ড", "парола", "密码", "密碼",
    "დაგავიწყდათ", "κωδικόςπρόσβασης", "પાસવર્ડ", "סיסמה",
    "पासवर्ड", "jelszó", "lykilorð", "paswọọdụ",
    "パスワード", "ಪಾಸ್ವರ್ಡ್", "пароль", "ការពាក្យសម្ងាត់",
    "암호", "şîfre", "купуясөз", "ລະຫັດຜ່ານ",
    "slaptažodis", "лозинка", "पासवर्ड", "нууцүг",
    "စကားဝှက်ကို", "पासवर्ड", "رمز", "کلمهعبور",
    "hasło", "пароль", "лозинка", "پاسورڊ",
    "මුරපදය", "contraseña", "lösenord", "гузарвожа",
    "கடவுச்சொல்", "పాస్వర్డ్", "รหัสผ่าน", "пароль",
    "پاسورڈ", "mậtkhẩu", "פּאַראָל", "ọrọigbaniwọle"};
  1. 用户名元素的autocomplete=“one-time-code"或者"cc-*”,或者id、name属性上能正则匹配到如下one-time-code或者信用卡标识:
inline constexpr char16_t kOneTimePwdRe[] =
    u"one.?time|sms.?(code|token|password|pwd|pass)";

inline constexpr char16_t kCardCvcRe[] =
    u"verification|card.?identification|security.?code|card.?code"
    u"|security.?value"
    u"|security.?number|card.?pin|c-v-v"
    u"|código de segurança"  // pt-BR
    u"|código de seguridad"  // es-MX
    u"|karten.?prüfn"        // de-DE
    u"|(?:cvn|cvv|cvc|csc|cvd|ccv)"
    // We used to match "cid", but it is a substring of "cidade" (Portuguese for
    // "city") and needs to be handled carefully.
    u"|\\bcid\\b|cccid";
  1. 页面加载完成,的type属性不是"password",点击登录才变成"password"类型。

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

在这里插入图片描述

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

在这里插入图片描述

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程池的核心参数——Java全栈知识(50)

线程池的核心参数 线程池核心参数主要参考ThreadPoolExecutor这个类的7个参数的构造函数 corePoolSize 核心线程数目maximumPoolSize 最大线程数目 (核心线程救急线程的最大数目)keepAliveTime 生存时间 - 救急线程的生存时间,生存时间内没有新任务,此…

前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)

前端Vue字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin) 引言 最近前端引入了UI给的思源黑体字体文件,但是字体文件过于庞大,会降低页面首次加载的速度,目前我的项目中需要用到如下三个字体文…

视频理解模型

LSTM 视频分解成图片帧分别进行特征提取,最后把提取到的特征放到LSTM网络里提取时序信息。 3D-ConvNet 把一组图片帧作为一个整体输入到3D卷积网络中,由于多了一个维度,参数变得多,模型变深,但当时没有大量的视频数…

PMP--冲刺题--解题--71-80

文章目录 14.敏捷--合规--测试无问题,安全团队却拒绝部署,则意味着可能存在某方面安全问题71、 [单选] 一个项目经理正在为一家政府所有的公司管理一个采用迭代方法的项目。第一个有用的生产发布由三次迭代组成。每次迭代都在测试环境中成功通过了客户代…

qwt实现码流柱状图多色柱体显示

qwt实现码流柱状图多色柱体显示 1. 前言2. qt实现柱状图3.qwt基础说明3.1 qwt安装与使用3.1.1 下载qwt源码3.1.2 编译3.1.3 安装3.1.4 使用3.2 QwtPlotBarChart类3.2.1画图步骤3.2.2 specialSymbol3.3.3 barTitle4 BsBarChart定制4.1 每个柱体可以显示不同的颜色4.2 每个柱体可…

网络安全-IPv4和IPv6的区别

1. 2409:8c20:6:1135:0:ff:b027:210d。 这是一个IPv6地址。IPv6(互联网协议版本6)是用于标识网络中的设备的一种协议,它可以提供比IPv4更大的地址空间。这个地址由八组十六进制数字组成,每组之间用冒号分隔。IPv6地址通常用于替代…

大数据毕业设计选题推荐-B站热门视频数据分析-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Python 工具库每日推荐【Pillow】

文章目录 引言Python图像处理库的重要性今日推荐:Pillow工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:创建图像拼贴案例分析高级特性图像增强图像水印扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript 设计模式 专栏,感兴…

数学建模算法与应用 第5章 插值与拟合方法

目录 5.1 插值方法 Matlab代码示例:线性插值 Matlab代码示例:样条插值 5.2 曲线拟合的线性最小二乘法 Matlab代码示例:线性拟合 5.3 最小二乘优化与多项式拟合 Matlab代码示例:多项式拟合 5.4 曲线拟合与函数逼近 Matlab代…

深入理解链表(SList)操作

目录: 一、 链表介绍1.1、 为什么引入链表1.2、 链表的概念及结构1.3、 链表的分类 二、 无头单向非[循环链表](https://so.csdn.net/so/search?q循环链表&spm1001.2101.3001.7020)的实现2.1、 [单链表](https://so.csdn.net/so/search?q单链表&spm1001.2…

系统架构师备考记忆不太清楚的点-信息系统-需求分析

霍尔三维结构 逻辑维:解决问题的逻辑过程 过程有明确问题、确立目标、系统综合、系统分析、优化、系统决策、实施计划 时间维:工作进度 这个纬度则是做工作计划的输出 有 规划阶段、拟定方案、研制阶段、生产阶段、安装阶段、运行阶段、更新阶段 知…

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践

导读 在数据库系统中,查询优化器是数据库管理系统的核心组成部分,负责将用户的 SQL 查询转化为高效的执行计划,因而会直接影响用户体感的性能与稳定性。优化器的设计与实现过程充满挑战,有人比喻称这是数据库技术要持续攀登的珠穆…

Android SELinux——基础介绍(一)

Android 系统的安全策略是保护用户的隐私和数据不受侵害的重要保证,一个相对安全的计算环境对于确保移动设备的安全至关重要。随着新的威胁不断出现,Android 的安全策略也在不断发展和完善,以应对新的挑战。 一、概念介绍 1、SELinux SELin…

图像处理(一)——CMC特刊推荐

特刊征稿 01 期刊名称: Data and Image Processing in Intelligent Information Systems 截止时间: 提交截止日期:2024年11月15日 目标及范围: 感兴趣的主题包括但不限于: 先进的数据处理技术; 智能数据分析; 智能系统…

【论文阅读】DeepAC:实时六自由度目标跟踪的深度主动轮廓

Deep Active Contour for Real-time 6-DoF Object Tracking ICCV 2023 Project Page 【Question&Thinking】 解决的问题? RGB 视频的实时六自由度目标跟踪 现有的问题?提出的方法?达到的效果?存在的问题? Abst…

pnpm设置镜像源

# 查询当前使用的镜像源 pnpm get registry# 设置为淘宝镜像源 pnpm config set registry https://registry.npmmirror.com/# 还原为官方镜像源 pnpm config set registry https://registry.npmjs.org/参考链接 https://blog.csdn.net/weixin_45046532/article/details/139681…

谷歌地图服务地址汇总

写在前面&#xff1a; 1.参考自谷歌地图TMS地图服务地址收集&#xff0c;测试可用_谷歌地图url订阅订阅地址-CSDN博客&#xff0c;在这里备份一下&#xff0c;防止遗忘 2.需要翻墙 3.下面通过openlayers加载各风格地图 <!Doctype html> <html> <head><met…

MyBatis之ResultMap的association和collection

association例子演示 实体类演示 Data //书籍 public class Book {private String id;private String name;private String author;private Double price;private Integer del;private Date publishdate;private String info;//把出版社对象当作属性private Publisher pub;//-…

通过Express + Vue3从零构建一个用户认证与授权系统(二)数据库与后端项目搭建与实现

前言 上一篇完成了系统的相关设计文档的编写&#xff0c;本文将详细介绍如何一步步使用 TypeScript 和 Express 搭建一个模块化、类型安全的用户认证与授权系统&#xff0c;包括数据库设计、后端项目搭建、用户认证、角色与权限管理、错误处理以及 Swagger 文档集成。 项目准…

Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)

本合约非常适合新手学习&#xff0c;其包含了基本的增删改查功能以及各个方式的不同之处的总结&#xff0c;本套合约我也编写了truffle测试&#xff0c;学习truffle测试的小伙伴也有福了~ 该合约的主要作用是通过区块链技术实现物流追踪系统的透明化、自动化与防篡改特性&#…