CN110069735A - Js代码防重复注入方法、装置、计算机设备及存储介质 - Google Patents
Js代码防重复注入方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110069735A CN110069735A CN201910213786.8A CN201910213786A CN110069735A CN 110069735 A CN110069735 A CN 110069735A CN 201910213786 A CN201910213786 A CN 201910213786A CN 110069735 A CN110069735 A CN 110069735A
- Authority
- CN
- China
- Prior art keywords
- code
- link variable
- link
- variable
- browser page
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000002347 injection Methods 0.000 claims abstract description 97
- 239000007924 injection Substances 0.000 claims abstract description 97
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 238000011221 initial treatment Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- PXXLQQDIFVPNMP-UHFFFAOYSA-N 3-(diethylcarbamoyl)benzoic acid Chemical group CCN(CC)C(=O)C1=CC=CC(C(O)=O)=C1 PXXLQQDIFVPNMP-UHFFFAOYSA-N 0.000 description 1
- 241000219546 Damnacanthus major Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了JS代码防重复注入方法、装置、计算机设备及存储介质。该方法包括:接收所注入的JS代码,判断所述JS代码的注入类型;若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面;以及若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面。该方法采用数据传输优化技术,实现了当所述JS代码中的代码标签字段为空值时,JS代码才会被注入浏览器页面,确保了JS代码不会因与浏览器页面交互的页面有重定向或异步请求时而导致JS代码重复注入,避免了逻辑混乱。
Description
技术领域
本发明涉及数据传输优化技术领域,尤其涉及一种JS代码防重复注入方法、装置、计算机设备及存储介质。
背景技术
Web App是一种框架型APP开发模式(HTML5 APP框架开发模式,即H5APP,也即通过H5开发的应用程序),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部分构成,APP应用客户端只需安装应用的框架部分,而应用的数据则是每次打开APP(即应用程序)的时候,去云端取数据呈现给手机用户。
原生APP又称Native App(即本地App),该开发针对IOS(是由苹果公司开发的移动操作系统)、Android(是基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由谷歌公司和开放手机联盟领导及开发)、Windows(是美国微软公司研发的一套操作系统)等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是由“云服务器数据+APP应用客户端”两部分构成,APP应用所有的UI元素(即用户界面元素)、数据内容、逻辑框架均安装在手机终端上。
Hybrid App(混合模式移动应用)是指介于Web App、Native App这两者之间的App,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。
目前,Hybird App常常对Webview页面(Webview页面即网络视图)进行JS注入,达到页面和本地交互的目的。但是有些复杂页面有重定向或异步请求,会造成webviewDidFinishLoad调用多次,使得JS代码被注入多次。也即当调用JS的某个方法时,就会造成多次调用,造成逻辑混乱。
发明内容
本发明实施例提供了一种JS代码防重复注入方法、装置、计算机设备及存储介质,旨在解决现有技术中Hybird App或第三方对Webview页面进行JS注入时,存在有复杂页面重定向或异步请求,从而导致JS代码被多次注入的问题。
第一方面,本发明实施例提供了一种JS代码防重复注入方法,其包括:
接收所注入的JS代码,判断所述JS代码的注入类型;
若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;
若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面;。
第二方面,本发明实施例提供了一种JS代码防重复注入装置,其包括:
注入类型判断单元,用于接收所注入的JS代码,判断所述JS代码的注入类型;
本地注入单元,用于若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;
第三方注入单元,用于若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的JS代码防重复注入方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的JS代码防重复注入方法。
本发明实施例提供了一种JS代码防重复注入方法、装置、计算机设备及存储介质。该方法包括接收所注入的JS代码,判断所述JS代码的注入类型;若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面;以及若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面。该方法实现了当所述JS代码中的代码标签字段为空值时,JS代码才会被注入浏览器页面,确保了JS代码不会因与浏览器页面交互的页面有重定向或异步请求时而导致JS代码重复注入,避免了逻辑混乱。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的JS代码防重复注入方法的应用场景示意图;
图2为本发明实施例提供的JS代码防重复注入方法的流程示意图;
图3为本发明实施例提供的JS代码防重复注入方法的子流程示意图;
图4为本发明实施例提供的JS代码防重复注入方法的另一子流程示意图;
图5为本发明实施例提供的JS代码防重复注入方法的另一子流程示意图;
图6为本发明实施例提供的JS代码防重复注入方法的另一子流程示意图;
图7为本发明实施例提供的JS代码防重复注入装置的示意性框图;
图8为本发明实施例提供的JS代码防重复注入装置的子单元示意性框图;
图9为本发明实施例提供的JS代码防重复注入装置的另一子单元示意性框图;
图10为本发明实施例提供的JS代码防重复注入装置的另一子单元示意性框图;
图11为本发明实施例提供的JS代码防重复注入装置的另一子单元示意性框图;
图12为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的JS代码防重复注入方法的应用场景示意图,图2为本发明实施例提供的JS代码防重复注入方法的流程示意图,该JS代码防重复注入方法应用于终端中,该终端可以为手机、平板电脑、手提电脑、台式电脑等电子设备。该终端中安装有应用程序,其中,该应用程序可以为原生应用程序、Web应用程序或混合应用程序。该方法通过安装于终端中的应用软件进行执行。
如图2所示,该方法包括步骤S110~S130。
S110、接收所注入的JS代码,判断所述JS代码的注入类型。
在本实施例中,Hybrid App(混合模式移动应用)或第三方常常对浏览器页面(如H5页面)注入JS代码(注入JS代码是在浏览器地址栏中输入一段JavaScript代码,用来改变页面JS变量、页面标签的内容),以达到页面和本地交互的目的,也即实现终端的本地混合模式移动应用与终端的页面的交互,或是实现终端的页面与第三方终端的交互。但为了防止JS代码的重复注入,在JS代码注入到浏览器页面之前,需判断所述JS代码的注入类型,其中所述注入类型至少包括第三方注入和本地注入。
S120、若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面。
在本实施例中,若所述JS代码是由Hybrid App向浏览器页面注入JS代码,当所述浏览器页面接收到所述JS代码并不是立即注入,而是需要对其中一个关键字段进行判断,从而决定是否接收JS代码的注入。
Hybrid App的浏览器页面即是UIWebview;UIWebView类是用来显示网络内容,使用它可以简单的创造一个UIWebView对象,放置到窗口上,并且发送一个指向网络内容的请求。通过这个类,可以控制网页历史的前进后退,也可以通过程序去控制网络内容的属性。
在一实施例中,如图3所示,步骤S120具体包括:
S121、若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
在本实施例中,当所述JS代码中所包括的代码标签字段为空值,表示该JS代码从未注入过所述浏览器页面,此时可先获取所述JS代码对应的MD5值,之后所述代码标签字段更新为所述JS代码对应的MD5值,最后将所述JS代码及所述MD5值发送至所述浏览器页面。若下一次有同样的JS代码注入到浏览器页面之前,需先判断代码标签字段是否为空值,若从而确定是否将所述JS代码导入浏览器页面。
在一实施例中,如图4所示,步骤S121之后还包括:
S122、若所述JS代码中所包括的代码标签字段为非空值,发送拒绝所述JS代码的注入的提示信息。
在本实施例中,若所述JS代码中所包括的代码标签字段不为空值,则无需将该JS代码重复注入至浏览器页面,避免因webviewDidFinishLoad调用多次而导致的逻辑混乱。
在一实施例中,如图5所示,步骤S121包括:
S1211、将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;
S1212、将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;
S1213、将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;
S1214、创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;
S1215、将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;
S1216、按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
在本实施例中,MD5加密的过程如下:
MD5加密算法以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5加密算法中,首先需要对信息进行填充,使其字节长度对512求余数的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。
填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后再在这个结果后面附加一个以64位二进制表示的填充前的信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍数。这样做的原因是为满足后面处理中对信息长度的要求。
MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。
将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有四轮,每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量(文本中的一个子分组和一个常数)。
再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z)=(X∧Y)∨((X)∧Z)
G(X,Y,Z)=(X∧Z)∨(Y∧(Z))
H(X,Y,Z)=X?Y?Z
I(X,Y,Z)=Y?(X∨(Z))
其中,?是异或,∧是与,∨是或,是反符号。
如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。所有这些完成之后,将A,B,C,D分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后的输出是A,B,C和D的级联。最后得到的A,B,C,D就是输出结果,A是低位,D为高位,DCBA组成128位输出结果。
通过对JS代码进行MD5加密得到MD5值,并将MD5值写入代码标签字段,该代码标签字段是否为空值决定了同样的JS代码是否会被重复注入到浏览器页面,能有效避免JS代码重复注入导致的逻辑混乱。
S130、若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在本实施例中,若所述JS代码是第三方注入,同样也是先判断所述JS代码中的代码标签字段是否为空值,若所述JS代码中的代码标签字段不为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在一实施例中,如图6所示,步骤S130包括:
S131、接收第三方终端所上传的JS代码,将所述JS代码发送至对应的扩展接口;
S132、若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面。
在本实施例中,Hybrid App引入了很多第三方的软件开发工具包(即SDK),而第三方SDK往往是使用宿主App(即Hybrid App)的Webview(网络视图)展示一些页面,这些页面往往需要通过JS注入实现Webview和第三方SDK进行交互。
当Hybrid App的接口对第三方SDK开放时,可接收第三方SDK的JS注入文件,其中JS注入文件是在浏览器地址栏中输入一段JavaScript代码,用来改变页面JS变量、页面标签的内容。
所述JS代码是的文件类型主要是URL地址和JS文本;其中,URL地址中URL的全称是Uniform Resource Locator,表示统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址;JS文本中JS全称是JavaScript,是网页开发设计语言的一种。判断JS注入文件是为URL地址或是JS文本,是为了有针对性的对JS注入文件进行下一步处理。
若所述JS注入文件的文件类型是URL地址,只需将所述URL地址与超文本标记语言文件拼接为链接脚本,然后注入至浏览器页面即可。若第三方终端注入的JS注入文件是URL地址,在解析时是获取URL地址对应网页中获取的最新网页内容并注入到浏览器页面,使得第三方拥有在线发布修复JS代码的能力。
为了使Hybrid App中的浏览器页面具备接收第三方终端所上传的JS注入文件,需要通过Category特性(Category是指对一个类的扩展)对UIWebview扩展一个接口,专用于接收和处理JS注入文件。
在一实施例中,步骤S131之前还包括:
通过用于对已存在的类增加方法的Category语言特性对浏览器页面进行接口扩展,得到扩展接口。
在本实施例中,Category是Objective-C 2.0之后添加的语言特性,Category的主要作用是为已经存在的类添加方法,例如对UIWebView类进行接口的扩展从而得到扩展接口。通过对UIWebView类进行接口扩展得到扩展接口,从而具备了接收第三方SDK注入的能力,便于与第三发SDK进行交互。
在一实施例中,步骤S132包括:
构建超文本标记语言文件的头部,得到初始处理文件;
将所述URL地址注入至所述初始处理文件中位于头部之后的主体部,得到链接脚本。
在本实施例中,超文本标记语言文件即HTML文件(HTML的全称是HyperTextMarkup Language),HTML文件的头部即head部分,head标签用于定义文档的头部,它是所有头部元素的容器。<head>中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。文档的头部描述了文档的各种属性和信息,包括文档的标题、在Web中的位置以及和其他文档的关系等。
主体部即HTML文件的body部分,其包含文档的所有内容,比如文本、超链接、图像、表格、列表等等;
HTML文件的头部之前是<html>开头,主体部之后是</html>结尾,用于作为一个完整的HTML文件的开头和结尾;
以超文本标记语言文件为载体接收所述URL地址,然后注入到浏览器页面,满足了第三方SDK与Hybrid App的JS交互需求。
在一实施例中,所述将所述URL地址注入至所述初始处理文件中位于头部之后的主体部,得到链接脚本之后还包括:
根据所述链接脚本获取与所述URL地址对应的网页内容;
将所述网页内容注入至所述浏览器页面。
本实施例中,将URL地址注入到主体部,表示该链接脚本中所获取的JS注入内容是由对应的URL地址获取,若该URL地址下的内容发生更新时,此处将所述链接脚本注入至所述浏览器页面时,是将URL地址下的最新内容注入到所述浏览器页面,使得第三方拥有在线发布修复JS的能力。
通过上述方式,Hybrid App提供了第三方JS注入的能力,和Hybrid App的本地JS注入区分开,防止不安全以及业务耦合,保证了注入的独立性,而且JS注入过程中,不用针对第三方的需求提供适配。
在一实施例中,步骤若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面之后还包括:
若所述JS注入文件的文件类型是JS文本,通过所述扩展接口将所述JS文本中非法转义字符进行替换以得到JS脚本,将所述JS脚本注入至所述浏览器页面。
在一实施例中,通过所述扩展接口将所述JS文本中非法转义字符进行替换以得到JS脚本包括:
构建超文本标记语言文件的头部,得到初始处理文件;
判断所述JS文本中是否包括预设的非法转义字符;
若所述JS文本中包括至少一个所述非法转义字符,将所述非法转义字符进行屏蔽,得到处理后JS文本;
将所述处理后JS文本注入至初始处理文件中位于头部之后的主体部,得到所述JS脚本;
若所述JS文本中不包括所述非法转义字符,将所述JS文本注入至初始处理文件中位于头部之后的主体部,得到所述JS脚本。
即先构建HTML文件的头部,得到初始处理文件;判断所述JS文本中是否包括预设的非法转义字符;其中,预设的非法转义字符包括\\、\”、\’、\n、\r、\f;若所述JS文本中包括所述非法转义字符,将所述非法转义字符进行屏蔽,得到处理后JS文本,其中,屏蔽\\、\”、\’是均是在前面加上\\,屏蔽\n、\r、\f时是在前面加上\;将所述JS文本注入至初始处理文件中位于头部之后的主体部,得到JS脚本。
在本实施例中将JS文本屏蔽非法转义字符后转化成处理后JS文本并注入到主体部,表示该JS脚本中所获取的JS注入内容是直接由所述JS脚本获取,当第三方SDK需要更新JS注入内容时,再次将最新的JS文本由扩展接口注入即可。
该方法实现了当所述JS代码中的代码标签字段为空值时,JS代码才会被注入浏览器页面,确保了JS代码不会因与浏览器页面交互的页面有重定向或异步请求时而导致JS代码重复注入,避免了逻辑混乱。
本发明实施例还提供一种JS代码防重复注入装置,该JS代码防重复注入装置用于执行前述JS代码防重复注入方法的任一实施例。具体地,请参阅图7,图7是本发明实施例提供的JS代码防重复注入装置的示意性框图。该JS代码防重复注入装置100可以配置于终端中。
如图7所示,JS代码防重复注入装置100包括注入类型判断单元110、本地注入单元120、第三方注入单元130。
注入类型判断单元110,用于接收所注入的JS代码,判断所述JS代码的注入类型。
在本实施例中,Hybrid App(混合模式移动应用)或第三方常常对浏览器页面(如H5页面)注入JS代码(注入JS代码是在浏览器地址栏中输入一段JavaScript代码,用来改变页面JS变量、页面标签的内容),以达到页面和本地交互的目的,也即实现终端的本地混合模式移动应用与终端的页面的交互,或是实现终端的页面与第三方终端的交互。但为了防止JS代码的重复注入,在JS代码注入到浏览器页面之前,需判断所述JS代码的注入类型,其中所述注入类型至少包括第三方注入和本地注入。
本地注入单元120,用于若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面。
在本实施例中,若所述JS代码是由Hybrid App向浏览器页面注入JS代码,当所述浏览器页面接收到所述JS代码并不是立即注入,而是需要对其中一个关键字段进行判断,从而决定是否接收JS代码的注入。
Hybrid App的浏览器页面即是UIWebview;UIWebView类是用来显示网络内容,使用它可以简单的创造一个UIWebView对象,放置到窗口上,并且发送一个指向网络内容的请求。通过这个类,可以控制网页历史的前进后退,也可以通过程序去控制网络内容的属性。
在一实施例中,如图8所示,本地注入单元120具体包括:
字段更新单元121,用于若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
在本实施例中,当所述JS代码中所包括的代码标签字段为空值,表示该JS代码从未注入过所述浏览器页面,此时可先获取所述JS代码对应的MD5值,之后所述代码标签字段更新为所述JS代码对应的MD5值,最后将所述JS代码及所述MD5值发送至所述浏览器页面。若下一次有同样的JS代码注入到浏览器页面之前,需先判断代码标签字段是否为空值,若从而确定是否将所述JS代码导入浏览器页面。
在一实施例中,如图9所示,JS代码防重复注入装置100还包括:
提示单元122,用于若所述JS代码中所包括的代码标签字段为非空值,发送拒绝所述JS代码的注入的提示信息。
在本实施例中,若所述JS代码中所包括的代码标签字段不为空值,则无需将该JS代码重复注入至浏览器页面,避免因webviewDidFinishLoad调用多次而导致的逻辑混乱。
在一实施例中,如图10所示,字段更新单元121包括:
第一填充单元1211,用于将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;
第二填充单元1212,用于将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;
信息分组单元1213,用于将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;
初始创建单元1214,用于创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;
循环运算单元1215,用于将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;
级联单元1216,用于按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
在本实施例中,通过对JS代码进行MD5加密得到MD5值,并将MD5值写入代码标签字段,该代码标签字段是否为空值决定了同样的JS代码是否会被重复注入到浏览器页面,能有效避免JS代码重复注入导致的逻辑混乱。
第三方注入单元130,用于若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在本实施例中,若所述JS代码是第三方注入,同样也是先判断所述JS代码中的代码标签字段是否为空值,若所述JS代码中的代码标签字段不为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在一实施例中,如图11所示,第三方注入单元130包括:
注入文件获取单元131,用于接收第三方终端所上传的JS代码,将所述JS代码发送至对应的扩展接口;
URL地址注入单元132,用于若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面。
在本实施例中,Hybrid App引入了很多第三方的软件开发工具包(即SDK),而第三方SDK往往是使用宿主App(即Hybrid App)的Webview(网络视图)展示一些页面,这些页面往往需要通过JS注入实现Webview和第三方SDK进行交互。
当Hybrid App的接口对第三方SDK开放时,可接收第三方SDK的JS注入文件,其中JS注入文件是在浏览器地址栏中输入一段JavaScript代码,用来改变页面JS变量、页面标签的内容。
所述JS代码是的文件类型主要是URL地址和JS文本;其中,URL地址中URL的全称是Uniform Resource Locator,表示统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址;JS文本中JS全称是JavaScript,是网页开发设计语言的一种。判断JS注入文件是为URL地址或是JS文本,是为了有针对性的对JS注入文件进行下一步处理。
若所述JS注入文件的文件类型是URL地址,只需将所述URL地址与超文本标记语言文件拼接为链接脚本,然后注入至浏览器页面即可。若第三方终端注入的JS注入文件是URL地址,在解析时是获取URL地址对应网页中获取的最新网页内容并注入到浏览器页面,使得第三方拥有在线发布修复JS代码的能力。
该装置实现了当所述JS代码中的代码标签字段为空值时,JS代码才会被注入浏览器页面,确保了JS代码不会因与浏览器页面交互的页面有重定向或异步请求时而导致JS代码重复注入,避免了逻辑混乱。
上述JS代码防重复注入装置可以实现为计算机程序的形式,该计算机程序可以在如图12所示的计算机设备上运行。
请参阅图12,图12是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是终端,该终端可以为手机、平板电脑、手提电脑、台式电脑等电子设备。
参阅图12,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行JS代码防重复注入方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行JS代码防重复注入方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图12中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:接收所注入的JS代码,判断所述JS代码的注入类型;若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;以及若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在一实施例中,处理器502在执行所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面的步骤时,执行如下操作:若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
在一实施例中,处理器502在执行所述通过所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面的步骤之后,执行如下操作:若所述JS代码中所包括的代码标签字段为非空值,发送拒绝所述JS代码的注入的提示信息。
在一实施例中,处理器502在执行所述将所述代码标签字段更新为所述JS代码对应的MD5值的步骤时,执行如下操作:将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
在一实施例中,处理器502在执行所述将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面的步骤时,执行如下操作:接收第三方终端所上传的JS代码,将所述JS代码发送至对应的扩展接口;若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面。
本领域技术人员可以理解,图12中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图12所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:接收所注入的JS代码,判断所述JS代码的注入类型;若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;以及若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
在一实施例中,所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面,包括:若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
在一实施例中,所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面之后,还包括:若所述JS代码中所包括的代码标签字段为非空值,发送拒绝所述JS代码的注入的提示信息。
在一实施例中,所述将所述代码标签字段更新为所述JS代码对应的MD5值,包括:将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
在一实施例中,所述将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面,包括:接收第三方终端所上传的JS代码,将所述JS代码发送至对应的扩展接口;若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种JS代码防重复注入方法,其特征在于,包括:
接收所注入的JS代码,判断所述JS代码的注入类型;
若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;以及
若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
2.根据权利要求1所述的JS代码防重复注入方法,其特征在于,所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面,包括:
若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
3.根据权利要求2所述的JS代码防重复注入方法,其特征在于,所述当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面之后,还包括:
若所述JS代码中所包括的代码标签字段为非空值,发送拒绝所述JS代码的注入的提示信息。
4.根据权利要求2所述的JS代码防重复注入方法,其特征在于,所述将所述代码标签字段更新为所述JS代码对应的MD5值,包括:
将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;
将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;
将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;
创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;
将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;
按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
5.根据权利要求1所述的JS代码防重复注入方法,其特征在于,所述将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面,包括:
接收第三方终端所上传的JS代码,将所述JS代码发送至对应的扩展接口;
若所述JS代码是URL地址,通过所述扩展接口将所述URL地址拼接为链接脚本,将所述链接脚本发送至所述浏览器页面。
6.一种JS代码防重复注入装置,其特征在于,包括:
注入类型判断单元,用于接收所注入的JS代码,判断所述JS代码的注入类型;
本地注入单元,用于若所述JS代码是本地注入,当所述JS代码中的代码标签字段为空值,将所述JS代码发送至浏览器页面;以及
第三方注入单元,用于若所述JS代码是第三方注入,当所述JS代码中的代码标签字段为空值,将所述JS代码通过与所述浏览器页面对应的扩展接口发送至所述浏览器页面。
7.根据权利要求6所述的JS代码防重复注入装置,其特征在于,所述本地注入单元具体用于:
若所述JS代码中所包括的代码标签字段为空值,获取所述JS代码对应的MD5值,将所述代码标签字段更新为所述JS代码对应的MD5值,将所述JS代码及所述MD5值发送至所述浏览器页面。
8.根据权利要求7所述的JS代码防重复注入装置,其特征在于,所述本地注入单元,包括:
第一填充单元,用于将所述JS代码通过1个字符1和字符1之后的多个字符0进行填充,直至填充后的JS代码的字节长度对512取模得448;
第二填充单元,用于将所述填充后的JS代码填充以64位二进制表示的所述JS代码的信息长度,得到处理后信息;
信息分组单元,用于将处理后信息按512位为一组进行分组,得到分组总数及多个分组信息;
初始创建单元,用于创建4个32位的链接变量,分别记为A链接变量、B链接变量、C链接变量、D链接变量;其中,A链接变量=0x01234567,B链接变量=0x89abcdef,C链接变量=0xfedcba98,D链接变量=0x76543210;
循环运算单元,用于将A链接变量、B链接变量、C链接变量、D链接变量为4个初始变量经过MD5加密算法的四轮主循环运算,得到与A链接变量对应的第一链接变量、与B链接变量对应的第二链接变量、与C链接变量对应的第三链接变量、与D链接变量对应的第四链接变量;其中,MD5加密算法的四轮主循环运算中每一轮主循环算法的循环次数与所述分组总数相同;
级联单元,用于按照第四链接变量-第一链接变量的顺序依次级联,得到128位的MD5值。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的JS代码防重复注入方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至5任一项所述的JS代码防重复注入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910213786.8A CN110069735A (zh) | 2019-03-20 | 2019-03-20 | Js代码防重复注入方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910213786.8A CN110069735A (zh) | 2019-03-20 | 2019-03-20 | Js代码防重复注入方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110069735A true CN110069735A (zh) | 2019-07-30 |
Family
ID=67366443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910213786.8A Pending CN110069735A (zh) | 2019-03-20 | 2019-03-20 | Js代码防重复注入方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069735A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131461A (zh) * | 2019-12-26 | 2020-05-08 | 平安信托有限责任公司 | 应用于文件传输的防重处理方法、装置、设备及介质 |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254746A1 (en) * | 2012-03-26 | 2013-09-26 | Software Ag | Systems and/or methods for executing appropriate tests based on code modifications using live, distributed, real-time cache and feedback loop |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
CN109388425A (zh) * | 2018-08-17 | 2019-02-26 | 东莞数汇大数据有限公司 | 一种前端工程的接口切换方法、系统、装置和存储介质 |
-
2019
- 2019-03-20 CN CN201910213786.8A patent/CN110069735A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254746A1 (en) * | 2012-03-26 | 2013-09-26 | Software Ag | Systems and/or methods for executing appropriate tests based on code modifications using live, distributed, real-time cache and feedback loop |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
CN109388425A (zh) * | 2018-08-17 | 2019-02-26 | 东莞数汇大数据有限公司 | 一种前端工程的接口切换方法、系统、装置和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131461A (zh) * | 2019-12-26 | 2020-05-08 | 平安信托有限责任公司 | 应用于文件传输的防重处理方法、装置、设备及介质 |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
CN114816558B (zh) * | 2022-03-07 | 2023-06-30 | 深圳市九州安域科技有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6311223B1 (en) | Effective transmission of documents in hypertext markup language (HTML) | |
CN104994122B (zh) | 一种基于json数据协议的业务通讯方法 | |
US5623656A (en) | Script-based data communication system and method utilizing state memory | |
CN104714827B (zh) | 插件更新方法及装置 | |
CN108572819A (zh) | 页面更新方法、装置、终端及计算机可读存储介质 | |
JP3808020B2 (ja) | Javaサーブレットの機能を有するWebサーバ、Javaプログラムの更新方法、およびコンピュータプログラム | |
CN102915363B (zh) | 网址收藏方法和系统 | |
CN105404620A (zh) | 一种表单校验的方法和装置 | |
CN106209925A (zh) | 页面加载方法、客户端及系统 | |
CN102970284B (zh) | 用户信息处理方法和服务器 | |
CN108509209A (zh) | 一种资源包的生成方法、装置、计算机设备及存储介质 | |
US11677809B2 (en) | Methods for transforming a server side template into a client side template and devices thereof | |
BR112014006589B1 (pt) | Método implementado por computador para navegação de sessão remota e sistema para navegação de sessão remota | |
US9547633B2 (en) | Methods for extending a selector application programming interface and devices thereof | |
CN103383687A (zh) | 一种页面处理方法和装置 | |
CN107728999A (zh) | 一种App、小程序接口模拟的方法和系统 | |
CN110580174B (zh) | 应用组件生成方法、服务器及终端 | |
CN108052548A (zh) | 一种网页创建的方法、系统及终端设备 | |
CN110069735A (zh) | Js代码防重复注入方法、装置、计算机设备及存储介质 | |
CN106897153A (zh) | 调用应用编程接口的方法和系统 | |
CN108536489A (zh) | 匹配资源环境的方法、装置和计算机可读存储介质 | |
CN109145236A (zh) | 页面文件处理方法、装置及系统 | |
CN108021564A (zh) | 一种页面重定向的方法和设备 | |
CN109669678A (zh) | 模板引擎整合方法、装置、电子设备及存储介质 | |
CN108509243A (zh) | 一种应用中的页面加载的方法、装置及电子设备 |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240712 |
|
AD01 | Patent right deemed abandoned |