基于动态交互的小程序授权死循环入口点查找方法
本发明涉及小程序安全检测,特别涉及一种基于动态交互的小程序授权死循环入口点查找方法。
背景技术:
1、随着移动互联网和平台化应用生态的发展,小程序作为一种轻量化应用形式,已广泛应用于政务服务、医疗健康、交通出行、电子商务、生活缴费等场景。小程序在提供服务过程中通常需要请求用户手机号、昵称、头像、地理位置、通讯地址、支付信息等个人信息或敏感权限,因此授权行为是小程序运行中的常见交互环节。
2、正常情况下,小程序应当在明确告知用户授权目的、授权范围和使用方式后,由用户自主选择是否授权。然而,在实际应用中,部分小程序存在强制授权、频繁授权、重复授权、诱导授权以及授权死循环等问题。其中,授权死循环是指用户拒绝授权或关闭授权弹窗后,小程序仍反复弹出授权请求,或者反复跳转至授权页面,使用户难以进入其他功能页面或正常退出当前授权流程。此类问题不仅影响用户体验,也增加了小程序授权合规性检测的难度。
3、现有的小程序授权行为检测方式主要包括人工测试、静态分析和普通自动化遍历。人工测试需要测试人员逐个打开小程序页面并手动点击控件,存在检测成本高、覆盖范围有限和结果依赖人工经验的问题。静态分析主要通过分析小程序代码、配置文件或接口调用情况发现潜在授权行为,但小程序页面具有动态渲染、异步跳转和运行时弹窗等特点,仅依赖静态分析难以完整还原实际运行中的授权路径。普通自动化遍历虽然能够自动点击页面控件,但通常缺乏对页面文本语义和授权相关性的判断,容易对大量无关控件进行点击,导致检测效率低,并且容易遗漏隐藏在复杂页面路径中的授权入口点。
4、此外,小程序授权死循环入口点的表现形式较为多样。有些入口点直接以“授权登录”“获取手机号”“允许定位”等文字形式出现;有些入口点需要经过一个或多个中间页面、弹窗或确认按钮后才会触发授权请求;还有一些入口点本身并不包含明显授权文字,但点击后会自动进入授权流程并形成页面闭环。因此,如何在小程序动态运行过程中自动提取页面文本和可交互控件,优先筛选高概率授权入口点,并通过动态交互验证判断其是否形成授权死循环,是当前小程序授权行为检测中需要解决的技术问题。
技术实现思路
1、本发明的目的在于提出一种基于动态交互的小程序授权死循环入口点查找方法,以解决现有技术中人工检测成本高、静态分析难以覆盖动态授权路径、普通自动化遍历缺乏授权相关性判断、授权死循环入口点定位效率低的问题。
2、本发明通过自动获取小程序运行页面,提取页面文本信息和可交互控件信息,对页面文本和控件进行授权相关度计算与排序,优先选择高授权相关度的候选入口点进行自动化交互,并结合语言模型交互决策模块对页面状态和交互路径进行判断,最后根据授权弹窗状态、页面跳转状态、拒绝授权后的返回状态和页面重复出现状态判断是否形成授权死循环,从而输出授权死循环入口点、页面路径和死循环类型。
3、为了实现上述目的,本发明提供一种基于动态交互的小程序授权死循环入口点查找方法,包括如下步骤:
4、步骤 s101:启动待检测小程序,获取所述待检测小程序的运行页面,并采集所述运行页面的页面截图、页面结构信息、页面文本信息和可交互控件信息;其中,所述待检测小程序为依托宿主应用提供的运行环境运行、具有可交互页面并能够在运行过程中发起至少一种用户授权请求的小程序;
5、步骤 s102:根据所述页面截图和页面结构信息,对所述页面文本信息和可交互控件信息进行提取与筛选,构建页面状态集合 state,其中,所述页面状态集合 state 至少包括页面标识、页面文本、控件类型、控件坐标、控件文本和页面跳转关系;
6、步骤 s103:根据页面文本与授权行为之间的相关度,对页面状态集合state中的页面文本和可交互控件进行授权相关度计算,得到授权相关度分值,并根据授权相关度分值构建候选授权入口点集合;
7、步骤 s104:按照候选授权入口点集合中各候选授权入口点的授权相关度分值,对候选授权入口点进行排序,优先选择授权相关度分值较高的候选授权入口点作为待交互入口点;
8、步骤 s105:对所述待交互入口点执行自动化交互操作,获取交互后的页面状态、授权弹窗状态、页面跳转状态和拒绝授权后的返回状态,并记录交互路径 path;
9、步骤 s106:将所述交互路径 path、交互后的页面状态和页面文本输入语言模型交互决策模块,由所述语言模型交互决策模块判断当前页面是否属于授权相关页面,并生成下一步交互决策;
10、步骤 s107:根据所述授权弹窗状态、页面跳转状态、拒绝授权后的返回状态、页面重复出现状态以及语言模型交互决策结果,判断所述待交互入口点是否形成授权死循环;若形成授权死循环,则将所述待交互入口点确定为小程序授权死循环入口点,并输出所述小程序授权死循环入口点、对应页面路径和授权死循环类型。
11、进一步地,所述步骤 s101 中获取所述待检测小程序的运行页面,具体包括:
12、步骤 s201:初始化所述待检测小程序所属宿主应用提供的运行环境,启动所述待检测小程序,并进入其初始页面;
13、步骤 s202:对当前页面进行页面状态采集,获取当前页面的页面截图、页面结构信息、页面文本信息和可交互控件信息;
14、步骤 s203:根据当前页面中的可交互控件信息,执行自动化页面遍历操作,依次访问所述待检测小程序中的导航栏页面、功能页面、弹窗页面和由页面跳转产生的中间页面;
15、步骤 s204:在页面遍历过程中,记录每一页面的页面标识、页面截图、页面文本、控件信息和页面跳转关系,形成已访问页面状态集合;
16、步骤 s205:当检测到当前页面状态与已访问页面状态集合中的页面状态相同或相似时,将当前页面状态与已访问页面状态进行合并,避免对重复页面进行反复遍历。
17、进一步地,所述步骤 s102 中对页面文本信息和可交互控件信息进行提取与筛选,具体为:
18、步骤 s301:通过图形用户界面控件树提取当前页面中的控件类型、控件文本、控件坐标、控件大小、控件层级关系和控件是否可点击的信息;
19、步骤 s302:通过光学字符识别方法识别页面截图中的文本内容,所述文本内容包括按钮文本、弹窗文本、导航栏文本、提示文本、输入框关联文本和页面说明文本;
20、步骤 s303:对步骤 s301 和步骤 s302 得到的文本内容进行去重、合并和过滤,删除装饰性文本、重复文本以及与页面交互无关的文本;
21、步骤 s304:将筛选后的页面文本与对应的可交互控件进行关联,生成文本-控件关联集合 tc;
22、步骤 s305:根据所述文本-控件关联集合 tc、页面标识和页面跳转关系,构建页面状态集合 state。
23、进一步地,所述步骤 s103 中授权相关度计算具体为:
24、步骤 s401:构建预设授权相关关键词集合,所述预设授权相关关键词集合至少包括登录、授权、允许、同意、获取手机号、获取位置、头像、昵称、绑定、实名、认证、个人信息、隐私协议和用户协议;
25、步骤 s402:逐一判断页面文本是否包含所述预设授权相关关键词集合中的各关键词,根据各关键词的预设权重和匹配结果计算关键词匹配分值a,a=σwiii;其中,wi为第i个关键词的预设权重,各关键词的预设权重之和为1;ii为匹配指示值,页面文本包含第i个关键词时取1,否则取0;
26、步骤 s403:计算页面文本与预设授权语义文本之间的语义相似度分值,所述预设授权语义文本用于表示小程序中常见的授权请求、登录请求、个人信息获取请求和权限调用请求;
27、步骤 s404:根据可交互控件的控件类型、控件坐标、控件面积、控件层级、控件所在页面区域以及控件是否位于弹窗区域,计算控件特征分值;
28、步骤 s405:根据所述关键词匹配分值、语义相似度分值和控件特征分值进行加权计算,得到页面文本或可交互控件的授权相关度分值。
29、进一步地,所述步骤s103中构建候选授权入口点集合以及步骤s104中对候选授权入口点进行排序,具体为:
30、步骤 s501:将授权相关度分值大于预设阈值的页面文本和对应可交互控件加入候选授权入口点集合;
31、步骤 s502:按照授权相关度分值由高到低对候选授权入口点集合中的候选授权入口点进行排序;
32、步骤 s503:对于授权相关度分值相同或相近的候选授权入口点,根据控件在页面中的位置、控件是否可点击、控件是否位于弹窗区域以及控件所在页面的访问深度确定优先级;
33、步骤 s504:优先选择排序靠前的候选授权入口点作为待交互入口点执行自动化交互操作。
34、进一步地,所述步骤 s105 中自动化交互操作具体为:
35、步骤 s601:对待交互入口点执行点击操作,并记录点击前页面状态;
36、步骤 s602:在点击后检测是否出现授权弹窗、登录页面、手机号授权页面、位置信息授权页面、个人信息授权页面或其他授权相关页面;
37、步骤 s603:当出现授权弹窗时,模拟用户拒绝授权操作,并记录拒绝授权后的页面返回状态;
38、步骤 s604:当未出现授权弹窗但发生页面跳转时,记录跳转后的页面文本、页面截图、页面结构信息和页面路径;
39、步骤 s605:根据点击前页面状态、点击后页面状态和拒绝授权后的页面返回状态,更新交互路径 path。
40、进一步地,所述步骤 s106 中语言模型交互决策模块具体按照如下方式生成下一步交互决策:
41、步骤 s701:将当前页面文本、候选授权入口点、历史交互路径 path、页面状态变化信息和授权行为查找目标构造成提示信息;
42、步骤 s702:将所述提示信息输入语言模型交互决策模块,得到当前页面是否属于授权相关页面的判断结果;
43、步骤 s703:当判断当前页面属于授权相关页面时,生成结构化交互决策,所述结构化交互决策包括动作类型和目标对象,其中,动作类型包括继续点击、拒绝授权、返回上一页面、重新选择候选授权入口点或停止当前路径查找,目标对象包括待点击控件、待拒绝授权弹窗、待返回页面或待重新选择的候选授权入口点;
44、步骤 s704:当判断当前页面偏离授权行为查找目标时,执行目标偏移检测,并根据历史交互路径 path 返回上一页面或重新选择候选授权入口点。
45、进一步地,所述步骤 s107 中判断所述待交互入口点是否形成授权死循环,具体为:
46、步骤 s801:判断拒绝授权后是否再次出现相同或相似的授权弹窗;
47、步骤 s802:判断拒绝授权后页面是否返回至触发授权弹窗前的页面,并再次要求用户执行相同授权操作;
48、步骤 s803:判断页面跳转路径中是否存在重复页面状态,并形成由授权页面、拒绝页面、返回页面和再次授权页面组成的闭环路径;
49、步骤 s804:判断用户是否无法进入与授权无关的其他功能页面;
50、步骤 s805:当步骤 s801 至步骤 s804 中至少一项在预设时间、预设交互次数或预设相似度阈值条件下满足死循环判定条件时,判定所述待交互入口点形成授权死循环。
51、本发明的进一步改进在于:所述步骤 s101 至步骤 s102 中,通过页面截图采集、图形用户界面控件树提取和光学字符识别相结合的方式获取小程序页面状态,使得页面状态不仅包括可交互控件信息,还包括页面中通过图片、弹窗或动态渲染方式呈现的文本信息,从而提高页面授权入口点提取的完整性。
52、本发明的进一步改进在于:所述步骤 s103 至步骤 s104 中,通过授权相关度计算对页面文本和可交互控件进行排序,将与授权行为相关度较高的文本或控件优先作为候选授权入口点,避免普通自动化遍历过程中对大量无关控件进行重复点击,提高小程序授权死循环入口点的查找效率。
53、本发明的进一步改进在于:所述步骤 s105 中,通过自动化交互操作模拟用户对候选授权入口点的点击、返回、拒绝授权和继续浏览操作,记录交互前后的页面状态变化,使得授权死循环入口点的判断不依赖于单一文本关键词,而是基于实际运行过程中的页面跳转和授权弹窗变化进行动态验证。
54、本发明的进一步改进在于:所述步骤 s106 中,采用语言模型交互决策模块对当前页面文本、历史交互路径和授权行为查找目标进行综合判断,用于识别当前页面是否属于授权相关页面,并在页面跳转偏离授权行为查找目标时生成返回上一页面、重新选择候选授权入口点或停止查找的交互决策,从而减少复杂页面路径中的无效点击和重复检测。
55、本发明的进一步改进在于:所述步骤 s107 中,通过授权弹窗重复出现、拒绝授权后返回同一页面、页面跳转路径形成闭环以及无法进入与授权无关的功能页面中的至少一种状态,对授权死循环进行判定,并根据入口点触发方式将授权死循环划分为显性入口型授权死循环、嵌套入口型授权死循环和隐性入口型授权死循环。
56、相对于现有技术,本发明具有以下优点:
57、1)本发明通过对小程序页面文本和可交互控件进行授权相关度排序,能够优先定位可能触发授权行为的候选入口点,减少对无关控件的遍历和点击,提高授权死循环入口点查找效率;
58、2)本发明结合页面截图、页面结构信息、控件信息和页面文本信息构建页面状态集合,能够适应小程序页面动态渲染、弹窗展示和多页面跳转的运行特点,提高授权入口点提取的完整性;
59、3)本发明通过自动化交互方式记录点击前页面状态、点击后页面状态、授权弹窗状态和拒绝授权后的返回状态,能够根据小程序实际运行过程判断是否形成授权死循环,降低仅依赖关键词匹配造成的误判;
60、4)本发明引入语言模型交互决策模块,对当前页面文本和历史交互路径进行综合分析,能够在复杂页面路径中判断是否偏离授权行为查找目标,并生成下一步交互决策,提高授权路径查找的准确性和连续性;
61、5)本发明能够识别显性入口型、嵌套入口型和隐性入口型等不同类型的授权死循环入口点,并输出入口点所在页面、入口点文本、入口点坐标、交互路径和授权死循环类型,为后续小程序授权合规性检测和平台治理提供数据基础。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com