CN112559980B - 一种可内嵌众多任意app的小程序运行时 - Google Patents
一种可内嵌众多任意app的小程序运行时 Download PDFInfo
- Publication number
- CN112559980B CN112559980B CN202011328003.XA CN202011328003A CN112559980B CN 112559980 B CN112559980 B CN 112559980B CN 202011328003 A CN202011328003 A CN 202011328003A CN 112559980 B CN112559980 B CN 112559980B
- Authority
- CN
- China
- Prior art keywords
- applet
- runtime
- sdk
- app
- management background
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 4
- 238000013480 data collection Methods 0.000 abstract description 6
- 238000000034 method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种可内嵌众多任意APP的小程序运行时。所述可内嵌众多任意APP的小程序运行时包括小程序运行时、管理后台和编译工具,开发好的小程序使用编译工具编译小程序并上传至管理后台,开发者在管理后台上架小程序和相应的基础库,小程序运行时从管理后台下载小程序和基础库,在宿主APP内运行小程序。本发明可内嵌到任意APP且安全的小程序运行时,而小程序可加密存储,解密能力封装到SDK内,所以没有授权的第三方不能窃取小程序代码,同时小程序的数据和第三方宿主APP完全隔离,保护小程序产生的数据不被第三方窃取,并且提供等同于原生APP的数据收集能力,且能提供与原生APP等同的数据收集能力。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种可内嵌众多任意APP的小程序运行时。
背景技术
随着计算机技术的不断发展,小程序(Mini Program)开发技术日益成为一种移动端应用的开发标准。想要在某个APP里面运行小程序,该APP首先必须提供一个小程序运行时,为小程序提供运行环境。
但目前的市面上,大的互联网公司APP,比如微信支付宝,有提供小程序运行时,但是这些运行时都只能运行在特定的APP内,比如微信小程序运行时只能运行在微信里,并没有可内嵌到任意APP的小程序运行时。由于小程序运行时需要内嵌到任意的APP,所以小程序运行时SDK的安全性就显得非常重要,否则集成该SDK的第三方可以较为轻松的反编译SDK(特别是Android端的SDK),并进行修改,使得整个小程序运行时的安全性被破坏。
目前微信小程序运行时是一种运行在微信内部的,提供小程序运行环境的程序,开发者按照微信小程序的语法开发并编译好小程序之后,上传到微信小程序管理后台,审核通过之后,就可以在微信APP里面打开相应的小程序,现有技术的缺点有三个:①微信小程序运行时只能运行在微信这个APP里面,无法在其他APP内运行微信小程序运行时;②开发好的小程序只能在微信端打开,如果同样的功能想要在其他有小程序运行时的APP内打开的话,比如支付宝,则需要重新开发和编译;③如果同样功能的小程序想要在多个APP内上架,需要在多个平台上架,而这些缺点的根本原因就是没有一个可以内嵌到任意APP的小程序运行时,以及配套的管理后台。
针对上述的缺点,本发明要解决的问题或者想要达到的目的是:提供一种可以内嵌到任意APP的小程序运行时,由于可以应用于任意APP,所以这个运行时SDK是需要有安全保障的,因此本发明也提供SDK的安全编译和信息安全机制提供与运行时SDK配套的小程序管理系统,开发者只需要开发、编译一套代码然后在一个后台上架一次就可以实现在多个APP内运行这一个小程序。
发明内容
为解决上述技术问题,本发明提供一种可多APP同时发布且在管理后台发布的小程序可以在内嵌运行时的APP内运行的可内嵌众多任意APP的小程序运行时。
本发明提供的可内嵌众多任意APP的小程序运行时包括:小程序运行时、管理后台和编译工具,开发好的小程序使用所述编译工具编译小程序并上传至所述管理后台,开发者在所述管理后台上架小程序和相应的基础库,所述小程序运行时从所述管理后台下载小程序和基础库,在宿主APP内运行小程序。
优选的,所述小程序运行时包括运行时SDK和前端基础库,运行时SDK提供原生能力、热更新能力、安全校验能力、与管理后台交互能力,所述前端基础库主要提供这种API供前端开发者使用。
优选的,所述运行时SDK和前端基础库两种合起来为小程序在嵌入宿主APP内提供安全的运行环境,当管理后台上架一个小程序之后,SDK会分别从后台下载基础库和小程序,然后SDK和基础库构成运行环境,小程序在运行环境里面运行。
优选的,所述小程序运行时包括SDK和基础库两部分在启动时,SDK会向后台进行签名验证,验证SDK是否能合法如果SDK签名验证通过之后,SDK会从管理后台下载相应的基础库,组成相应的小程序运行时运行时准备好之后,运行时会从管理后台下载相应的小程序到本地,并打开运行小程序在运行的时候,可以通过运行时的接口,将数据加密之后上报到管理后台进行存储和分析。
优选的,将SDK签名验证、小程序解密、数据加解密、数据上报模块封装到二进制文件里面,防止反编译,其他模块根据运行平台封装在各自的语言包里面,具体地,ios封装到framework里面,android封装到aar里面,这一部分通过数据通信接口进行通信,android通过jni,ios直接代码引入通信,在第二层里面封装原生数据获取、热更新、灰度发布、基础库调用API四个模块。
优选的,所述管理后台主要是为了实现小程序的管理和加密,开发者将编译好的小程序上架到所述管理后台后,所述小程序运行时会从所述管理后台下载相应的小程序,然后在宿主APP内运行。
优选的,开发者可以使用微信小程序的语法开发小程序,然后使用所述编译工具编译小程序之后,就可以运行在所述小程序运行时里面。
优选的,所述运行时SDK内嵌到宿主APP内,所述管理后台交互能力包括下载小程序的性能。
与相关技术相比较,本发明提供的可内嵌众多任意APP的小程序运行时具有如下有益效果:
1、本发明可内嵌到任意APP且安全的小程序运行时,而小程序可加密存储,解密能力封装到SDK内,所以没有授权的第三方(包括宿主APP)窃取小程序代码,同时小程序的数据和第三方宿主APP完全隔离,保护小程序产生的数据不被第三方窃取,并且提供等同于原生APP的数据收集能力,在一些受监管的行业,比如金融,相关APP通常需要收集用户的设备和隐私信息,且能提供与原生APP等同的数据收集能力;
2、本发明一处上架,多APP同时发布,在管理后台发布的小程序,可以在内嵌运行时的APP内运行,而运行时本身与管理后台也具备校验机制,所以可以在管理后台下架相应的宿主APP,使得相应APP失去小程序能力;
3、本发明兼容微信小程序语法,即为编译工具提供的能力。
附图说明
图1为本发明提供的可内嵌众多任意APP的小程序运行时的一种较佳实施例的流程示意图;
图2为本发明提供的小程序运行时和管理后台的示意图;
图3为本发明提供的小程序运行时SDK时整个运行的示意图。
具体实施方式
下面结合附图和实施方式对本发明作进一步说明。
请结合参阅图1、图2和图3,其中,图1为本发明提供的可内嵌众多任意APP的小程序运行时的一种较佳实施例的流程示意图;图2为本发明提供的小程序运行时和管理后台的示意图;图3为本发明提供的小程序运行时SDK时整个运行的示意图。包括:小程序运行时、管理后台和编译工具,开发好的小程序使用所述编译工具编译小程序并上传至所述管理后台,开发者在所述管理后台上架小程序和相应的基础库,所述小程序运行时从所述管理后台下载小程序和基础库,在宿主APP内运行小程序。
在具体实施过程中,如图2和图3所示,所述小程序运行时包括运行时SDK和前端基础库,运行时SDK提供原生能力、热更新能力、安全校验能力、与管理后台交互能力,所述前端基础库主要提供这种API供前端开发者使用,所述运行时SDK和前端基础库两种合起来为小程序在嵌入宿主APP内提供安全的运行环境,当管理后台上架一个小程序之后,SDK会分别从后台下载基础库和小程序,然后SDK和基础库构成运行环境,小程序在运行环境里面运行,而所述小程序运行时包括SDK和基础库两部分在启动时,SDK会向后台进行签名验证,验证SDK是否能合法如果SDK签名验证通过之后,SDK会从管理后台下载相应的基础库,组成相应的小程序运行时运行时准备好之后,运行时会从管理后台下载相应的小程序到本地,并打开运行小程序在运行的时候,可以通过运行时的接口,将数据加密之后上报到管理后台进行存储和分析,将SDK签名验证、小程序解密、数据加解密、数据上报模块封装到二进制文件里面,防止反编译,其他模块根据运行平台封装在各自的语言包里面,具体地,ios封装到framework里面,android封装到aar里面,这一部分通过数据通信接口进行通信,android通过jni,ios直接代码引入通信,在第二层里面封装原生数据获取、热更新、灰度发布、基础库调用API四个模块。
需要说明的是:本小程序运行时可内嵌到任意APP且安全的小程序运行时,而小程序可加密存储,解密能力封装到SDK内,所以没有授权的第三方(包括宿主APP)不能窃取小程序代码,同时小程序的数据和第三方宿主APP完全隔离,保护小程序产生的数据不被第三方窃取,并且提供等同于原生APP的数据收集能力,在一些受监管的行业,比如金融,相关APP通常需要收集用户的设备和隐私信息,且能提供与原生APP等同的数据收集能力,而一处上架,多APP同时发布,在管理后台发布的小程序,可以在内嵌运行时的APP内运行,而运行时本身与管理后台也具备校验机制,所以可以在管理后台下架相应的宿主APP,使得相应APP失去小程序能力。
其中,所述运行时SDK内嵌到宿主APP内,所述管理后台交互能力包括下载小程序的性。
参考图1所示,所述管理后台主要是为了实现小程序的管理和加密,开发者将编译好的小程序上架到所述管理后台后,所述小程序运行时会从所述管理后台下载相应的小程序,然后在宿主APP内运行,而开发者可以使用微信小程序的语法开发小程序,然后使用所述编译工具编译小程序之后,就可以运行在所述小程序运行时里面,小程序运行时可兼容微信小程序语法,即为编译工具提供的能力。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种可内嵌众多任意APP的小程序运行时系统,包括小程序运行时、管理后台和编译工具,其特征在于,开发好的小程序使用所述编译工具编译小程序并上传至所述管理后台,开发者在所述管理后台上架小程序和相应的基础库,所述小程序运行时从所述管理后台下载小程序和基础库,在宿主APP内运行小程序;
所述小程序运行时包括运行时SDK和前端基础库,
所述运行时SDK和前端基础库两种合起来为小程序在嵌入宿主APP内提供安全的运行环境,当管理后台上架一个小程序之后,SDK会分别从后台下载基础库和小程序,然后SDK和基础库构成运行环境,小程序在运行环境里面运行。
2.根据权利要求1所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,运行时SDK提供原生能力、热更新能力、安全校验能力、与管理后台交互能力,所述前端基础库主要提供这种API供前端开发者使用。
3.根据权利要求1所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,在启动时,SDK会向后台进行签名验证,验证SDK是否能合法,如果SDK签名验证通过之后,SDK会从管理后台下载相应的基础库,组成相应的小程序运行时,小程序运行时准备好之后,小程序运行时会从管理后台下载相应的小程序到本地,并打开运行小程序,在运行的时候,可以通过小程序运行时的接口,将数据加密之后上报到管理后台进行存储和分析。
4.根据权利要求3所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,将SDK签名验证、小程序解密、数据加解密、数据上报模块封装到二进制文件里面,防止反编译,其他模块根据运行平台封装在各自的语言包里面,具体地,ios封装到framework里面,android封装到aar里面,这一部分通过数据通信接口进行通信,android通过jni,ios直接代码引入通信,在第二层里面封装原生数据获取、热更新、灰度发布、基础库调用API四个模块。
5.根据权利要求1所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,所述管理后台主要是为了实现小程序的管理和加密,开发者将编译好的小程序上架到所述管理后台后,所述小程序运行时会从所述管理后台下载相应的小程序,然后在宿主APP内运行。
6.根据权利要求1所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,开发者可以使用微信小程序的语法开发小程序,然后使用所述编译工具编译小程序之后,就可以运行在所述小程序运行时里面。
7.根据权利要求2所述的可内嵌众多任意APP的小程序运行时系统,其特征在于,所述运行时SDK内嵌到宿主APP内,所述管理后台交互能力包括下载小程序的性能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011328003.XA CN112559980B (zh) | 2020-11-24 | 2020-11-24 | 一种可内嵌众多任意app的小程序运行时 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011328003.XA CN112559980B (zh) | 2020-11-24 | 2020-11-24 | 一种可内嵌众多任意app的小程序运行时 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559980A CN112559980A (zh) | 2021-03-26 |
CN112559980B true CN112559980B (zh) | 2023-05-05 |
Family
ID=75044973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011328003.XA Active CN112559980B (zh) | 2020-11-24 | 2020-11-24 | 一种可内嵌众多任意app的小程序运行时 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559980B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948824B (zh) * | 2021-03-31 | 2022-04-26 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的程序通信方法、装置及设备 |
CN113687891B (zh) * | 2021-07-19 | 2024-09-27 | 阿里巴巴创新公司 | 数据管理方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046000A (zh) * | 2019-04-24 | 2019-07-23 | 上海连尚网络科技有限公司 | 小程序运行方法和装置 |
CN110865855A (zh) * | 2019-11-18 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 小程序处理方法及相关设备 |
CN111049897A (zh) * | 2019-12-10 | 2020-04-21 | 北京百度网讯科技有限公司 | 小程序包的加密上传和解密部署方法、装置、设备和介质 |
CN111078260A (zh) * | 2019-12-23 | 2020-04-28 | 焦点科技股份有限公司 | 一种微信小程序第三方平台管理的方法及系统 |
CN111124576A (zh) * | 2019-12-23 | 2020-05-08 | 焦点科技股份有限公司 | 一种多平台小程序及h5页面适配的方法及系统 |
CN111625310A (zh) * | 2020-05-11 | 2020-09-04 | 镇江纵陌阡横信息科技有限公司 | 一种通用型多端小程序系统 |
WO2020207454A1 (zh) * | 2019-04-12 | 2020-10-15 | 上海连尚网络科技有限公司 | 信息推送方法和装置 |
CN111949272A (zh) * | 2020-07-30 | 2020-11-17 | 百度在线网络技术(北京)有限公司 | 寄宿应用的编译优化方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-11-24 CN CN202011328003.XA patent/CN112559980B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020207454A1 (zh) * | 2019-04-12 | 2020-10-15 | 上海连尚网络科技有限公司 | 信息推送方法和装置 |
CN110046000A (zh) * | 2019-04-24 | 2019-07-23 | 上海连尚网络科技有限公司 | 小程序运行方法和装置 |
CN110865855A (zh) * | 2019-11-18 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 小程序处理方法及相关设备 |
CN111049897A (zh) * | 2019-12-10 | 2020-04-21 | 北京百度网讯科技有限公司 | 小程序包的加密上传和解密部署方法、装置、设备和介质 |
CN111078260A (zh) * | 2019-12-23 | 2020-04-28 | 焦点科技股份有限公司 | 一种微信小程序第三方平台管理的方法及系统 |
CN111124576A (zh) * | 2019-12-23 | 2020-05-08 | 焦点科技股份有限公司 | 一种多平台小程序及h5页面适配的方法及系统 |
CN111625310A (zh) * | 2020-05-11 | 2020-09-04 | 镇江纵陌阡横信息科技有限公司 | 一种通用型多端小程序系统 |
CN111949272A (zh) * | 2020-07-30 | 2020-11-17 | 百度在线网络技术(北京)有限公司 | 寄宿应用的编译优化方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112559980A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
US20180129794A1 (en) | Method for Protecting Dex File from Decompilation in Android System | |
US20180260199A1 (en) | Method and apparatus for intermediate representation of applications | |
CN104680039B (zh) | 一种应用程序安装包的数据保护方法及装置 | |
US20090138863A1 (en) | Method And Apparatus For Protecting .NET Programs | |
CN110333868B (zh) | 用于生成子应用的安装包的方法和系统 | |
CN112559980B (zh) | 一种可内嵌众多任意app的小程序运行时 | |
KR20140077188A (ko) | 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치 | |
Singh et al. | Analysis of malicious behavior of android apps | |
CN107871066B (zh) | 基于安卓系统的代码编译方法及装置 | |
US11269988B2 (en) | Automated software application verification system | |
CN108595950A (zh) | 一种结合远程认证的sgx安全增强方法 | |
KR20160020294A (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
KR101872104B1 (ko) | Apk 파일 동적로딩 기법을 이용한 뱅킹 어플리케이션 무결성 검증 시스템 및 무결성 검증방법 | |
CN112733094A (zh) | 一种Java应用程序的安全保护方法 | |
CN105447398A (zh) | 数据安全保护方法及装置 | |
JP2013041598A (ja) | プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム | |
KR101436741B1 (ko) | 프로그램 보안 솔루션 적용 방법 및 시스템 | |
Lim et al. | Protecting Android Applications with Multiple DEX Files Against Static Reverse Engineering Attacks. | |
CN114238943A (zh) | 应用程序防护方法、装置、设备及存储介质 | |
CN111752548A (zh) | 一种sdk嵌入方法及装置、计算机可读存储介质 | |
US20150052514A1 (en) | Method and computer system of distributing a computer program product | |
Jadhav | Protecting the integrity of Android applications by employing automated self-introspection methods | |
Han et al. | Protecting Android applications with multiple DEX files against Static Reverse Engineering Attacks Kyeonghwan Lim1, Nak Young Kim1, Younsik Jeong1, Seong-je Cho1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 1901-1902, 19th Floor, Cuilin Building, No. 10 Kaifeng Road, Maling Community, Meilin Street, Futian District, Shenzhen, Guangdong 518000 Applicant after: Shenzhen Fantai Geek Technology Co.,Ltd. Address before: 519000 room 105-26642, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant before: ZHUHAI FINOGEEKS TECHNOLOGY CO.,LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |