一种保护网页代码的方法、存储介质、电子设备和系统与流程

文档序号:15020393发布日期:2018-07-25 00:34阅读:140来源:国知局

本发明涉及人机识别技术领域,具体涉及一种保护网页代码的方法、存储介质、电子设备和系统。



背景技术:

目前,随着HTML5技术的发展,HTML5是下一代HTML标准,大部分浏览器已经具备了对HTML5的支持。对于HTML5的直播平台来说,其页面主要的代码都是JavaScript代码,其是一种脚本语言,所以在发布页面时相当于是源码发布,任何人都可以直接获取到该页面的JavaScript代码,并将其整个代码融入到自己的代码中,从而调用其中对应的功能。

例如,在页面的源码中有个函数的功能是解密服务器下发的数据,必然此函数会非常复杂,那么黑客并不需要分析清楚其中的实现方式,黑客可以将此段功能代码直接拷贝到自己的代码中执行,从而也可以完成对服务器下发的数据的解密。因此,需要一种方法来对页面的核心JavaScript代码来进行保护,防止其被拷贝使用。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种保护网页代码的方法,可以识别出客户端的合法性,实现对网页代码的保护。

为达到以上目的,本发明采取的技术方案是:

一种保护网页代码的方法,包括步骤:

预先在网页代码的核心函数中加入用于判断设定的所述网页代码的函数及全局变量是否存在的检测代码;

当所述核心函数在客户端的运行环境中执行时,检测代码检测该运行环境中是否存在设定的所述网页代码的其他函数及全局变量,并根据检测结果识别该客户端是否合法,并对该客户端进行相应处理。

在上述技术方案的基础上,还包括步骤:对所述检测代码进行加密。

在上述技术方案的基础上,具体包括步骤:

设定需要检测的网页代码的函数名称及全局变量名称;

预先在网页代码的核心函数中加入检测代码,所述检测代码根据设定的函数名称及全局变量名称判断在运行环境中是否存在对应的函数及全局变量,并加密所述检测代码;

当所述核心函数在客户端的运行环境中执行时,解密并运行所述检测代码,所述检测代码检测出该运行环境中是否存在设定的所述网页代码的函数及全局变量,并向服务器发送检测结果;

服务器根据所述检测结果识别该客户端是否合法,并对该客户端进行相应处理。

在上述技术方案的基础上,在向服务器发送检测结果之前,先对检测结果进行加密,再将加密后的检测结果发送给服务器,服务器在接收到加密后的检测结果后,先对其进行解密,再根据解密后的检测结果识别客户端是否合法。

本发明还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本发明还提供了一种保护网页代码的系统,所述系统包括设置模块、检测模块和处理模块;

所述设置模块用于预先在网页代码的核心函数中加入用于判断设定的所述网页代码的函数及全局变量是否存在的检测代码;

所述检测模块用于当所述核心函数在客户端的运行环境中执行时,控制所述检测代码检测该运行环境中是否存在设定的所述网页代码的其他函数及全局变量,并将检测结果发送给所述处理模块;

所述处理模块用于根据检测模块得到的检测结果识别该客户端是否合法,并对该客户端进行相应处理。

在上述技术方案的基础上,还包括参数设定模块、第一加密模块和第一解密模块。

所述参数设定模块用于设定需要检测的网页代码的函数名称及全局变量名称;

所述第一加密模块用于在网页代码的核心函数中加入检测代码后加密所述检测代码;

所述第一解密模块用于当所述核心函数在客户端的运行环境中执行时解密所述检测代码;

所述检测模块还用于当所述核心函数在客户端的运行环境中执行时,在所述第一解密模块解密所述检测代码后,运行所述检测代码,并控制所述检测代码根据设定的函数名称和全局变量名称检测该运行环境中是否存在设定的所述网页代码的函数及全局变量。

在上述技术方案的基础上,所述第一加密模块和第一解密模块均采用DES对称加密算法。

在上述技术方案的基础上,还包括第二加密模块和第二解密模块;

所述第二加密模块用于对所述检测模块的检测结果进行加密,并将加密后的检测结果发送给所述处理模块;

所述处理模块还用于将接收到加密后的检测结果发送给第二解密模块;

所述第二解密模块用于对接收到的检测结果进行解密,并将解密后的检测结果返回给所述处理模块;

所述处理模块还用于根据解密后的检测结果识别客户端是否合法。

与现有技术相比,本发明的优点在于:

(1)本发明的保护网页代码的方法,通过判断客户端的运行环境中是否存在设定的网页代码的函数及全局变量,从而可以识别出客户端的合法性,实现对网页代码的保护。

(2)本发明的保护网页代码的方法,先对检测代码加密,当核心函数在客户端中运行时,再解密该检测代码,可有效防止该检测代码被黑客发现,以免黑客对其进行规避或篡改,从而保证该网页代码保护方法的可靠性。

附图说明

图1为本发明实施例中保护网页代码的方法的流程图;

图2为本发明实施例中电子设备的连接框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种保护网页代码的方法,包括步骤:

S1:设定需要检测的网页代码的函数名称及全局变量名称,设定的函数名称及全局变量名称可以根据实际需求进行选取,优选为直播平台中特有的一些功能函数或全局变量,如发送弹幕的函数等。

S2:预先在网页代码的核心函数中加入检测代码,检测代码根据设定的函数名称及全局变量名称判断在运行环境中是否存在对应的函数及全局变量。

具体实现过程为:检测代码中包括若干用于检测设定的全局变量是否存在的函数和若干用于检测设定的函数是否存在的函数。其中,用于检测设定的全局变量是否存在的函数如下:

其中,用于检测设定的全局变量是否存在的函数名称是ExitsVariable,传入的变量名是variableName,variableName为设定的全局变量名称,通过该函数可以检测出该全局变量是否存在。

若直播平台的JS代码中会设置一个全局变量,用于存放一些全局的设置,这个全局变量是本直播平台所特有的,则可选择对是否存在该全局变量进行检测,将该全局变量名称命名为dyConfig,通过以下代码即可得到全局变量dyConfig是否存在,如下:

dyConfigFlag=ExitsVariable(“dyConfig”);

其中,ExitsVariable是用于检测设定的全局变量是否存在的函数,“dyConfig”是待检测的全局变量名称,dyConfigFlag是检测该全局变量是否存在的结果值。

另外,用于检测设定的函数是否存在的函数如下:

其中,用于检测设定的函数是否存在的函数名称是ExitsFunction,传入的变量名是funcName,funcName为设定的函数名称,通过该ExitsFunction函数可以检测出函数funcName是否存在。

对于直播平台特有的一些功能函数,如发送弹幕、显示广告等,则可选择检测这些本直播平台特有的功能函数是否存在,如发送弹幕的函数名称为dySendDanmu,通过以下代码即可得到发送弹幕的函数是否存在,如下:

dySendDanmuFlag=ExitsFunction(“dySendDanmu”);

其中,ExitsFunction是用于检测设定的函数是否存在的函数,“dySendDanmu”是发送弹幕的函数名称,dySendDanmuFlag是检测发送弹幕的函数是否存在的结果值。

当需要检测显示广告的函数是否存在时,显示广告的函数名称为dySendDanmu,通过以下代码即可得到显示广告的函数是否存在,如下:

dyShowAdvertisementFlag=ExitsFunction(“dyShowAdvertisement”);

其中,“dyShowAdvertisement”是显示广告的函数名称,dyShowAdvertisementFlag是检测显示广告的函数是否存在的结果值。

当需要检测打点用户行为进行上报到服务器的函数是否存在时,打点用户行为进行上报到服务器的函数名称为dySenddot,通过以下代码即可得到该函数是否存在,如下:

dySenddotFlag=ExitsFunction(“dySenddot”);

其中,“dySenddot”是打点用户行为进行上报到服务器的函数名称,dySenddotFlag是检测打点用户行为进行上报到服务器的函数是否存在的结果值。

类似地,可以根据实际需求,预设需要检测的函数名称及全局变量名称,并在检测代码中对应加入相应的用于检测设定的全局变量是否存在的函数、以及用于检测设定的函数是否存在的函数即可。

S3:加密检测代码,可有效防止该检测代码被黑客发现,以免黑客对其进行规避。

本发明实施例中,加密采用的是DES对称加密算法,通过密钥KEY值对要保护的检测代码进行加密,具体实现过程为编写一个加密函数对要保护的检测代码进行加密,可以得到一串加密的数据EncryptJs,如下:

EncryptJs=DES.Encrypt(getInterfaceFlag,KEY);

其中,DES.Encrypt是加密算法DES的加密接口Encrypt,参数getInterfaceFlag是要保护的JavaScript检测代码,参数KEY为密钥,且当有客户端登录时,服务器会生成一个与加密使用的密钥相同的KEY值,发送给客户端,以便客户端解密该检测代码,EncryptJs为返回结果,且返回结果为一串加密的数据。

加密后的检测代码变成一串加密的常量数据,该数据无任何可读的意义,服务器将这些常量数据保存到网页代码中,以字符串变量的形成进行保存,在需要解密时,对该字符串变量进行解密即可。

S4:当核心函数在客户端的运行环境中执行时,解密并运行检测代码,检测代码检测出该运行环境中是否存在设定的网页代码的函数及全局变量,并向服务器发送检测结果。

在本发明实施例中,解密采用的也是DES对称加密算法,通过密钥KEY值对要保护的检测代码进行解密,具体实现过程为编写一个解密函数对已加密的检测代码进行解密,将已加密得到的常量数据解密为检测代码的原始代码,如下:

getInterfaceFlag=DES.Decrypt(encryptCode,KEY);

其中,DES.Decrypt则是对应的解密算法的接口,encryptCode是检测代码加密后得到的常量数据,KEY是登录到服务器,服务器下发的密钥KEY值,getInterfaceFlag是解密出来的核心代码的原始代码,从而客户端则可以执行对应的检测代码完成相关逻辑功能。

在解密检测代码之后,运行该检测代码,检测代码可检测出该运行环境中是否存在设定的函数和全局变量,并对应得到每个设定的函数和全局变量的返回结果。若该设定函数或全局变量存在,则对应的返回结果置为1,若不存在,则对应的返回结果置为0。

当需要检测全局变量dyConfig、以及发送弹幕、显示广告、打点用户行为进行上报到服务器的函数是否存在时,设定的全局变量名称为dyConfig,设定的函数名称分别为dySendDanmu、dyShowAdvertisement和dySenddot,则可对应得到四个返回结果,这四个返回结果对应分别为dyConfigFlag、dySendDanmuFlag、dyShowAdvertisementFlag和dySenddotFlag,并将这四个返回结果进行打包,得到一个字符串Dataflag,将打包后的字符串Dataflag作为检测结果发送给服务器,该字符串Dataflag表示为:Dataflag=dyConfigFlag+dySendDanmuFlag+dyShowAdvertisementFlag+dySenddotFlag,如字符串Dataflag为1111、1101或0000等。

S5:服务器根据检测结果识别该客户端是否合法,并对该客户端进行相应处理。

当检测结果的字符串中每个字符均为1,表明该客户端运行环境中存在设定的函数和全局变量,则可认为该客户端是合法的,当该客户端运行环境中的检测结果中并非所有字符均为1,表明该客户端运行环境中至少有一个设定的函数或全局变量不存在,则可认为该客户端是不合法的,服务器对该客户端进行相应的处罚措施,从而实现对网页代码的保护。

进一步地,在本发明实施例中,在向服务器发送检测结果之前,先对检测结果进行加密,再将加密后的检测结果发送给服务器,服务器在接收到加密后的检测结果后,先对其进行解密,再根据解密后的检测结果识别客户端是否合法。对上述检测结果进行加密和解密的方法也采用的是DES对称加密算法,使用相同的密钥KEY对检测结果进行加密或解密,可有效防止该检测结果在发送给服务器的过程中被黑客发现,以免黑客对其进行篡改或规避,从而保证该网页代码保护方法的可靠性。

本发明实施例中保护网页代码的方法的原理在于:由于正常的网页代码中必然存在设定的该网页代码中所有函数及全局变量,当客户端使用该网页代码时,若是正常用户使用,则会使用到发布的网页代码,检测代码可以检测到设定的函数及全局变量均存在,则可认为该客户端是合法的,若是黑客直接拷贝使用该网页代码,由于通常黑客不会全部拷贝该网页代码,且不会使用到与正常网页代码中相同的全局变量,此时,检测代码在黑客的客户端中运行时,必然检测到至少有一个设定的函数或全局变量不存在,则可认为该客户端是不合法的,服务器可以对客户端进行相应处理,防止盗用,从而保护网页代码。

本发明实施例还提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述保护网页代码方法的步骤。

参见图2所示,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现保护网页代码方法的步骤。

本发明实施例还提供了一种保护网页代码的系统,系统包括设置模块、检测模块和处理模块。

设置模块用于预先在网页代码的核心函数中加入用于判断设定的网页代码的其他函数及全局变量是否存在的检测代码;检测模块用于当核心函数在客户端的运行环境中执行时,控制检测代码检测该运行环境中是否存在设定的网页代码的其他函数及全局变量,并将检测结果发送给处理模块;处理模块用于根据检测模块得到的检测结果识别该客户端是否合法,并对该客户端进行相应处理。

进一步地,系统还包括参数设定模块、第一加密模块和第一解密模块。参数设定模块用于设定需要检测的网页代码的函数名称及全局变量名称;第一加密模块用于在网页代码的核心函数中加入检测代码后加密检测代码;第一解密模块用于当核心函数在客户端的运行环境中执行时解密检测代码;检测模块还用于当核心函数在客户端的运行环境中执行时,在第一解密模块解密检测代码后,运行检测代码,并控制检测代码根据设定的函数名称和全局变量名称检测该运行环境中是否存在设定的网页代码的函数及全局变量。

且本发明实施例中,第一加密模块和第一解密模块均采用DES对称加密算法。

进一步地,系统还包括第二加密模块和第二解密模块,第二加密模块用于对检测模块的检测结果进行加密,并将加密后的检测结果发送给处理模块;处理模块还用于将接收到加密后的检测结果发送给第二解密模块;第二解密模块用于对接收到的检测结果进行解密,并将解密后的检测结果返回给处理模块;处理模块还用于根据解密后的检测结果识别客户端是否合法。

本发明实施例中保护网页代码的系统的原理在于:由于正常的网页代码中必然存在设定的该网页代码中所有函数及全局变量,当客户端使用该网页代码时,若是正常用户使用,则会使用到发布的网页代码,检测代码可以检测到设定的函数及全局变量均存在,则可认为该客户端是合法的,若是黑客直接拷贝使用该网页代码,由于通常黑客不会全部拷贝该网页代码,且不会使用到与正常网页代码中相同的全局变量,此时,检测代码在黑客的客户端中运行时,必然检测到至少有一个设定的函数或全局变量不存在,则可认为该客户端是不合法的,服务器可以对客户端进行相应处理,防止盗用,从而保护网页代码。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1