一种前端页面提供方法及装置
技术领域
本说明书一个或多个涉及互联网技术领域,尤其涉及一种前端页面提供方法及装置。
背景技术
目前,随着互联网技术的快速发展,互联网的应用越来越广泛,用户可以通过互联网进行网页浏览。当用户想要在各自的客户端上浏览某目标网页时,客户端需要获取用于渲染得到该目标网页的前端代码,然后,客户端运行该前端代码以显示该目标网页,以便用户在该目标页面上执行相应的操作。其中,该前端代码的来源可以是由业务服务器发送的,或者针对代码实现逻辑没有变更的情况,该前端代码的来源也可以是在先从业务服务器处获取并缓存到本地的。
其中,为了便于开发人员理解代码的意图和逻辑,也方便后续开发的调试和维护,前端代码中的代码方法(function)、类名(class)、抽象接口名(或者协议名protocol)以及属性名均采用语义化很明确的名字进行命名。然而,由于前端代码返回给客户端后,该前端代码可以直接由用户获取到,这样一些非法分子很容易对前端代码的实现逻辑进行识别破解,并对该前端代码中的关键实现逻辑进行篡改,从而实现非法分子的不良意图。例如,针对在前端执行的抽奖页面,该抽检页面对应的前端代码中包含一个校验逻辑,只允许用户抽奖一次,当再次检测到用户点击抽检,将提示用户不能多次抽奖,但是,如果非法分子识别出该校验逻辑,并对该校验逻辑进行篡改,可实现持续抽奖。
由此可知,当前急需给出一种破解难度大、防攻击的前端页面提供方案,以提高前端代码在客户端执行的安全性。
发明内容
本说明书一个或多个实施例的目的是提供一种前端页面提供方法及装置,能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
本说明书一个或多个实施例提供了一种前端页面提供方法,包括:
获取客户端针对前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供方法,包括:
获取客户端针对用于用户身份验证的前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供方法,包括:
向业务服务器发送针对前端页面的访问请求;
接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供装置,包括:
访问请求获取模块,用于获取客户端针对前端页面的访问请求;
混淆代码获取模块,用于响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
混淆代码发送模块,用于将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供装置,包括:
访问请求获取模块,用于获取客户端针对用于用户身份验证的前端页面的访问请求;
混淆代码获取模块,用于响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
混淆代码发送模块,用于将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供装置,包括:
访问请求发送模块,用于向业务服务器发送针对前端页面的访问请求;
混淆代码接收模块,用于接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
前端页面显示模块,用于基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取客户端针对前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取客户端针对用于用户身份验证的前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
本说明书一个或多个实施例提供了一种前端页面提供设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
向业务服务器发送针对前端页面的访问请求;
接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
获取客户端针对前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
本说明书一个或多个实施例提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
获取客户端针对用于用户身份验证的前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
本说明书一个或多个实施例提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
向业务服务器发送针对前端页面的访问请求;
接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例中的前端页面提供方法及装置,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的前端页面提供***的应用场景示意图;
图2a为本说明书一个或多个实施例提供的针对实时代码混淆方式下前端页面提供方法的实现原理示意图;
图2b为本说明书一个或多个实施例提供的针对非实时代码混淆方式下前端页面提供方法的实现原理示意图;
图3为本说明书一个或多个实施例提供的前端页面提供方法的第一种流程示意图;
图4为本说明书一个或多个实施例提供的前端页面提供方法的第一种信息交互示意图;
图5为本说明书一个或多个实施例提供的前端页面提供方法的第二种信息交互示意图;
图6为本说明书一个或多个实施例提供的前端页面提供方法的第二种流程示意图;
图7为本说明书一个或多个实施例提供的前端页面提供方法的第三种流程示意图;
图8为本说明书一个或多个实施例提供的前端页面提供装置的第一种模块组成示意图;
图9为本说明书一个或多个实施例提供的前端页面提供装置的第二种模块组成示意图;
图10为本说明书一个或多个实施例提供的前端页面提供***的模块组成示意图;
图11为本说明书一个或多个实施例提供的前端页面提供设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一个或多个一部分实施例,而不是全部的实施例。基于本说明书一个或多个中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书一个或多个保护的范围。
本说明书一个或多个实施例提供了一种前端页面提供方法及装置,能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
图1为本说明书一个或多个实施例提供的前端页面提供***的应用场景示意图,如图1所示,该***包括:多个客户端、业务服务器和代码混淆装置,其中,该代码混淆装置可以设置于该业务服务器中或者设置于不同于该业务服务器的混淆服务器中,该客户端可以是智能手机、平板电脑等移动终端,还可以是台式电脑等固定终端,其中,渲染得到前端页面的具体过程为:
首先,客户端向业务服务器发送针对前端页面的访问请求,业务服务器在接收到该访问请求后,获取与该访问请求对应的前端页面的目标混淆代码,其中,该目标混淆代码可以是采用实时代码混淆方式确定的,也可以是采用非实时代码混淆方式确定的;
具体的,如图2a所示,针对实时代码混淆方式确定目标混淆代码的情况,业务服务器在接收到该访问请求后,获取与该访问请求对应的前端页面的原始代码,并将该原始代码发送给代码混淆装置,代码混淆装置在接收到该原始代码后,对该原始代码进行动态混淆得到客户端请求访问的前端页面的目标混淆代码,并将该目标混淆代码发送给业务服务器,其中,代码混淆装置针对同一原始代码混淆得到的目标混淆代码是随机生成的,因此,在预设时间段内为同一客户端针对某一前端页面的多次访问请求返回的目标混淆代码可以不同,业务服务器接收该目标混淆代码;
如图2b所示,针对非实时代码混淆方式确定目标混淆代码的情况,业务服务器预先获取前端页面的原始代码,并将该原始代码发送给代码混淆装置,代码混淆装置在接收到该原始代码后,对该原始代码进行动态混淆得到该前端页面对应的包含预设数量的备选混淆代码的混淆代码集合,例如,该混淆代码集合中包含N个备选混淆代码,并将该混淆代码集合发送给业务服务器,其中,混淆代码集合中多个备选混淆代码之间各不相同,因此,在预设时间段内为同一客户端针对某一前端页面的多次访问请求返回的目标混淆代码可以不同,业务服务器在接收到针对该前端代码的访问请求后,在混淆代码集合中选取一个备选混淆代码作为目标混淆代码,例如,选取备选混淆代码m作为目标混淆代码,其中,在图2b中,虚线表示在客户端发送访问请求之前执行的动作;
然后,业务服务器获取到客户端请求访问的前端页面的目标混淆代码后,将该目标混淆代码发送给对应的客户端;
最后,客户端在接收到前端页面的目标混淆代码后,基于该目标混淆代码渲染得到对应的前端页面,从而能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
图3为本说明书一个或多个实施例提供的前端页面提供方法的第一种流程示意图,应用于安全性要求高的web***、或者应用于前端代码敏感度高的的web***,如图3所示,该方法至少包括以下步骤:
S301,业务服务器获取客户端针对前端页面的访问请求,其中,该访问请求携带有客户端标识以及用户请求访问的前端页面的标识,例如,当客户端检测到用户请求访问抽奖页面时,生成携带有客户端标识以及该抽奖页面的标识的访问请求,并将该访问请求发送给业务服务器,又如,当客户端检测到用户请求访问身份验证页面时,生成携带有客户端标识以及该身份验证页面的标识的访问请求,并将该访问请求发送给业务服务器;
S302,业务服务器响应获取到的访问请求,获取与该访问请求对应的前端页面的目标混淆代码,其中,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内某一客户端针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同,该指定数量大于预设最小阈值且小于或等于多次访问请求的数量;
其中,预设最小阈值用于限定针对多次访问请求对应的多个目标混淆代码中至少有预设最小阈值个不同的混淆代码,例如,预设最小阈值为n,此时对于在预设时间段内某一客户端的M次访问请求,为该客户端返回的M个目标混淆代码中至少有n个不同的目标混淆代码;
优选的,该指定数量等于该多次访问请求的数量,此时在预设时间段内同一客户端针对某一前端页面的多次访问请求分别对应的目标混淆代码各不相同,即在预设时间段内针对每一次访问请求,为客户端返回的目标混淆代码各不相同,例如,在预设时间段内某一客户端针对同一前端页面的多次访问请求的数量为M,指定数量也为M,此时为该客户端返回的M个不同的目标混淆代码,但是M个不同的目标混淆代码的主业务逻辑均与混淆前的原始代码的主业务逻辑相同;
具体的,目标混淆代码可以是实时由代码混淆装置对原始代码进行动态混淆得到的,并由代码混淆装置将该目标混淆代码发送给业务服务器,目标混淆代码还可以是业务服务器预先接收由代码混淆装置对原始代码进行动态混淆得到的多个备选混淆代码,再在预先获取的多个备选混淆代码中选取得到的;
S303,业务服务器将获取到的目标混淆代码发送给客户端,以使客户端基于该目标混淆代码渲染得到前端页面,其中,该目标混淆代码在前端的执行结果与客户端请求访问的前端页面的原始代码在前端的执行结果保持一致。
具体的,在预设时间段内同一客户端针对某一前端页面的多个访问请求返回给该客户端的目标混淆代码可以不同,其中,具有唯一性标识的一个用户终端可以认为是同一客户端,具有相同属性信息的多个用户终端均也可认为是同一客户端,例如,同一客户端可以是位于同一地理区域内的多个用户终端,还可以是位于同一局域网的多个用户终端,对应的,上述客户端标识包括:用户终端的唯一性标识、用户终端所在地理区域信息、用户终端所在局域网信息等,业务服务器可以根据客户端标识和预设同一客户端划分规则,判断当前请求访问前端页面的客户端与在预设时间段内已请求访问该前端页面的客户端是否为同一客户端,这样即使非法分子已经对上一次的目标混淆代码进行破解,但是由于本次返回的目标混淆代码又变化了,非法分子又需要重新破解,然而,下一次返回的目标混淆代码又变化了,由此可知,非法分子获取到目标混淆代码并对该目标混淆代码破解,并不适用于下一次返回的目标混淆代码,这样使得非法分子每次破解结果都是无效的,进而能够避免非法分子有目的性的对前端代码中的实现逻辑进行修改,同时,在对原始代码进行混淆处理时,保证得到的每份混淆代码的主业务逻辑与原始代码保持一致,这样使得客户端处的浏览器对应的编辑器可以自动识别出混淆代码的主业务逻辑,从而准确地执行该主业务逻辑,确保正常地在客户端展示用户请求的前端页面。
本说明书一个或多个实施例中,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
其中,针对确定前端页面的目标混淆代码的过程,可以采用实时代码混淆的方式,还可以采用非实时代码混淆的方式,基于此,上述S302业务服务器响应获取到的访问请求,获取与该访问请求对应的前端页面的目标混淆代码,具体包括:
(1)针对采用实时代码混淆方式的情况,业务服务器在接收到访问请求后,向代码混淆装置发送混淆代码获取请求,并接收代码混淆装置发送的目标混淆代码,其中,该混淆代码获取请求携带有访问请求对应的原始代码,该目标混淆代码是代码混淆装置对前端页面的原始代码进行动态混淆处理得到的;
(2)针对采用非实时代码混淆方式的情况,可以由业务服务器从多个备选混淆代码中选取一个目标混淆代码,具体的,业务服务器在接收到访问请求后,从与该访问请求对应的前端页面的备选混淆代码中,选取一个备选混淆代码作为前端页面的目标混淆代码,其中,该备选混淆代码是代码混淆装置预先对前端页面的原始代码进行动态混淆处理后得到的;
(3)针对采用非实时代码混淆方式的情况,还可以由代码混淆装置从多个备选混淆代码中选取一个目标混淆代码,即响应于访问请求,接收代码混淆装置发送的目标混淆代码,其中,该目标混淆代码为代码混淆装置从前端页面的备选混淆代码中选取一个备选混淆代码,前端页面的备选混淆代码是代码混淆装置预先对前端页面的原始代码进行动态混淆处理后得到的,具体的,业务服务器在接收到访问请求后,向代码混淆装置发送混淆代码获取请求,代码混淆装置从与该获取请求对应的前端页面的备选混淆代码中,选取一个备选混淆代码作为前端页面的目标混淆代码,并将该目标混淆代码发送给业务服务器。
其中,可以根据实际情况来选择采用实时代码混淆方式或者非实时代码混淆方式,例如,针对业务服务器的访问请求并发量比较大的情况下,即当业务服务器的访问请求的并发量满足预设条件时,优选地,采用非实时代码混淆方式,这样可以提高业务服务器对访问请求的响应效率。
其中,无论采用实时代码混淆方式,还是采用非实时代码混淆方式,均需要代码混淆装置对前端页面的原始代码进行动态混淆处理,针对原始代码的动态混淆过程,上述对前端页面的原始代码进行动态混淆处理,具体包括:
步骤一,代码混淆装置获取业务服务器发送的前端页面的原始代码,并确定该原始代码的代码混淆要素;
步骤二,代码混淆装置根据确定出的代码混淆要素,对原始代码进行动态混淆处理。
具体的,针对采用实时代码混淆方式的情况,原始代码的动态混淆过程是在获取客户端针对前端页面的访问请求之后执行的,如图4所示,在客户端显示与访问请求对应的前端页面的过程,具体为:
S401,客户端向业务服务器发送针对前端页面的访问请求;
S402,业务服务器在接收到客户端发送的访问请求后,获取与该访问请求对应的前端页面的原始代码,其中,该原始代码可以是基于javascript语言编写得到的代码;
S403,业务服务器向代码混淆装置发送获取到的原始代码;
S404,代码混淆装置在接收到原始代码后,确定该原始代码的代码混淆要素,其中,确定出的代码混淆要素的数量为一个,该代码混淆要素与针对该前端页面确定的在先的代码混淆要素不同;
S405,代码混淆装置根据确定出的代码混淆要素,对原始代码进行动态混淆处理,得到前端页面的目标混淆代码;
S406,代码混淆装置向业务服务器发送得到的目标混淆代码;
S407,业务服务器在接收到目标混淆代码后,将该目标混淆代码发送给对应的客户端;
S408,客户端接收到前端页面的目标混淆代码后,基于该目标混淆代码渲染得到前端页面并显示该前端页面。
具体的,针对采用非实时代码混淆方式的情况,原始代码的动态混淆过程是在获取客户端针对前端页面的访问请求之前执行的,如图5所示,在客户端显示与访问请求对应的前端页面的过程,具体为:
S501,业务服务器向代码混淆装置发送针对前端页面的原始代码;
S502,代码混淆装置在接收到原始代码后,确定该原始代码的代码混淆要素,其中,确定出的代码混淆要素的数量为多个,各代码混淆要素各不相同;
S503,代码混淆装置根据确定出的代码混淆要素,对原始代码进行动态混淆处理,得到前端页面的多个备选混淆代码,其中,各备选混淆代码对应的代码混淆要素各不相同,因此,得到的多个备选混淆代码各不相同;
S504,代码混淆装置向业务服务器发送得到的针对前端页面的多个备选混淆代码;
S505,客户端向业务服务器发送针对前端页面的访问请求;
S506,业务服务器在接收到客户端发送的访问请求后,从与该访问请求对应的前端页面的多个备选混淆代码中,选取一个备选混淆代码作为前端页面的目标混淆代码;
S507,业务服务器向对应的客户端发送选取出的目标混淆代码;
S508,客户端接收到前端页面的目标混淆代码后,基于该目标混淆代码渲染得到前端页面并显示该前端页面。
其中,上述用于确定前端页面的混淆代码的代码混淆要素包括以下至少一种:
(1)待***的目标冗余代码以及该目标冗余代码的***位置,其中,每个代码混淆要素中包含的目标冗余代码的数量可以根据预设***规则确定,例如,预设***规则指示需要***的冗余代码与原始代码中主业务代码的占比关系,又如,预设***规则指示需要***的冗余代码的最大数量和/或最小数量;
(2)原始代码中待调整的目标对象以及该目标对象的调整后位置,其中,该目标对象可以是函数声明,还可以是变量声明;
(3)原始代码中待压缩的目标字符,其中,该目标字符可以是空格,还可以是换行等等;
(4)原始代码中待更名的目标元素以及该目标元素的变更后名称,其中,该目标元素可以是变量名称,还可以是函数名称。
具体的,针对***冗余代码的情况,可以预先创建冗余代码库,该冗余代码库中包含按照预设规则生成的多个冗余代码,该冗余代码可以是能够正常执行且不影响原始代码执行结果的无用代码,也可以是封装后的不需要执行的主业务代码,该主业务代码是原始代码中的预设代码段,此时需要对该主业务代码进行封装后,再将封装后的主业务代码作为目标冗余代码***至原始代码中,例如,封装的方式可以是标记该主业务代码不需要执行;
其中,如果目标冗余代码为封装后的主业务代码,在客户端执行目标混淆代码时,由于该主业务代码是预先封装后的,保证对原始代码中的主业务代码的执行结果无影响,例如,将封装后的指示“调取摄像头”的主业务代码作为目标冗余代码***原始代码中,此时目标混淆代码中包含两段指示“调取摄像头”的主业务代码,其中一个指示“调取摄像头”的主业务代码已被封装起来,在执行到该被封装的主业务代码中自动跳过并不执行,这样在保证不影响原始代码执行结果的情况下,非法分子无法分清哪一段是用来执行的主业务代码,从而起到迷惑非法分子的目的。
具体的,针对代码位置调整的情况,需要预先利用开源的语法分析工具,确定调整位置不影响原始代码执行结果的目标对象,其中,如果两段主业务代码之间不具有先后执行的依赖关系,则将该主业务代码作为进行位置调整的目标对象,例如,在同一个域下的函数声明没有执行顺序限制,将某一域下的目标函数声明作为进行位置调整的目标对象,该目标函数声明的调整后位置可以是其所在域下的任意位置。
在具体实施时,考虑到如果只对原始代码中目标字符进行压缩处理、或者目标元素进行更名处理、或者对原始代码中目标字符进行压缩处理和目标元素进行更名处理的结合来降低反馈给客户端的前端代码的可读性,此时前端代码的基本代码构成框架是保持不变的,非法分子对前端代码的实现逻辑的识别难度比较小,导致存在前端代码容易被非法分子破解并攻击的风险,并且每次代码压缩和名称变更得到的前端代码变化比较小,这样非法分子对前端代码破解一次,后续就能够快速地识别出该前端代码的实现逻辑,因此,优选地将字符压缩、名称变更、冗余代码***、目标对象位置调整同时作为代码混淆要素,增大针对同一前端页面的多次访问请求返回给客户端的前端代码(即目标混淆代码)的差异性,进而提高非法分子对前端页面的代码的破解难度。
具体的,如果代码混淆要素包括:待***的目标冗余代码以及该目标冗余代码的***位置;对应的,上述步骤二根据确定出的代码混淆要素,对原始代码进行动态混淆处理,具体包括:
在预先创建的冗余代码库中,选取确定出的代码混淆要素包含的目标冗余代码,其中,代码混淆要素中可以包含目标冗余代码的标识,因此,在对原始代码进行动态混淆处理时,在预先创建的冗余代码库中,基于目标冗余代码的标识,查找待***的目标冗余代码,例如,该目标冗余代码可以是无用的变量声明、无用的数学运算代码、封装后的主业务代码,即对原始代码中主业务逻辑无影响的冗余代码;
在前端页面的原始代码中,根据各目标冗余代码的***位置添加该目标冗余代码,例如,目标冗余代码包括a、b、c、d,原始代码中的多段主业务代码包括A、B、C、D,***冗余代码后的原始代码可以是A;a;B;b;c;C;d;D,还可以是b;A;a;c;B;d;d;C;a;D,等等。
具体的,如果代码混淆要素包括:原始代码中待调整的目标对象以及该目标对象的调整后位置;对应的,上述步骤二根据确定出的代码混淆要素,对原始代码进行动态混淆处理,具体包括:
在前端页面的原始代码中,查找确定出的代码混淆要素包含的目标对象,其中,代码混淆要素中可以包含目标对象的标识,因此,在对原始代码进行动态混淆处理时,在原始代码中,基于目标对象的标识,查找待调整位置的目标对象,例如,该目标对象可以是函数声明、变量声明,即调整位置后对原始代码中主业务逻辑无影响的主业务代码;
根据调整后位置变更目标对象所在位置,具体的,将目标对象移动至调整后位置,其中,该目标对象位于变更后位置调用原始代码的执行结果与位于变更后位置调用原始代码的执行结果一致。
例如,位置调整前的原始代码结构为:
function A(){}
var B='123';
var C='456';
对应的,位置调整后的原始代码结构为:
var B='123';
var C='456';
function A(){}
具体的,如果代码混淆要素包括:原始代码中待压缩的目标字符;对应的,上述步骤二根据确定出的代码混淆要素,对原始代码进行动态混淆处理,具体包括:
在前端页面的原始代码中,查找确定出的代码混淆要素包含的目标字符,其中,代码混淆要素中可以包含目标字符的标识,因此,在对原始代码进行动态混淆处理时,在原始代码中,基于目标字符的标识,查找待删除的目标字符,例如,该目标字符可以是空格字符、换行字符;
删除查找到的目标字符,即对原始代码进行压缩处理。
具体的,如果代码混淆要素包括:原始代码中待更名的目标元素以及该目标元素的变更后名称;对应的,上述步骤二根据确定出的代码混淆要素,对原始代码进行动态混淆处理,具体包括:
在前端页面的原始代码中,查找确定出的代码混淆要素包含的目标元素,其中,代码混淆要素中可以包含目标元素的标识,因此,在对原始代码进行动态混淆处理时,在原始代码中,基于目标元素的标识,查找待更名的目标元素,例如,该目标元素可以是函数名称、变量名称;
根据各目标元素对应的变更后名称修改该目标元素的名称,即将函数名称或变量名称按照非语义化的方式进行命名。
例如,为了便于开发人员理解代码的意图和逻辑,原始代码中变更名称前的主业务代码为:
var hello=”你好”;
var world=”世界”;
对应的,混淆代码中变更名称后的主业务代码为:
var a=”你好”;
var b=”世界”;
进一步的,如果目标混淆代码为从备选混淆代码中选取的,即采用非实时代码混淆方式确定目标混淆代码;此时,确定出的代码混淆要素的数量为多个,且各代码混淆要素各不相同,因此,需要确定原始代码的变体数量,即确定代码混淆要素的数量,对应的,上述步骤一确定原始代码的代码混淆要素,具体包括:
确定原始代码的变体数量,以及确定变体数量的各不相同的代码混淆要素,具体的,每个备选混淆代码是基于一个代码混淆要素对原始代码进行混淆得到的。
其中,为了保证每次给客户端返回的混淆代码可以不同,确保预先生成的多个备选混淆代码能够满足在预设时间段内的混淆代码分发的需求,基于此,上述确定原始代码的变体数量,具体包括:
确定在预设时间段内针对前端页面的目标访问次数,其中,为了保证在预设时间段内针对同一客户端对某一前端页面的访问请求,向该客户端返回的目标混淆代码各不相同,该目标访问次数可以是每个客户端的平均目标访问次数,该目标访问次数还可以是预估的非法访问并获取前端代码的次数,该预设时间段可以是代码混淆装置的相邻两次代码混淆的时间间隔,针对每一次来自同一客户端对某一前端页面的访问请求均需要给客户端反馈一个该前端页面的目标混淆代码,因此,需要得到的备选混淆代码的数量与客户端对前端页面的目标访问次数直接相关;
根据确定出目标访问次数,确定前端页面的原始代码的变体数量,其中,该变体数量不小于目标访问次数,其中,由于同一客户端对前端页面的目标访问次数与预设时间段内所需备选混淆代码的数量直接相关,因此,基于目标访问次数确定原始代码的变体数量,再基于变体数量确定代码混淆要素的数量,进而得到变体数量的备选混淆代码;另外,在具体实施时,针对采用非实时代码混淆方式而言,还可以按照预设数量和预设频率,对原始代码进行动态混淆处理,得到预设数量的备选混淆代码。
本说明书一个或多个实施例中的前端页面提供方法,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
对应上述图2至图5描述的前端页面提供方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供方法,图6为本说明书一个或多个实施例提供的前端页面提供方法的流程示意图,如图6所示,该方法至少包括以下步骤:
S601,业务服务器获取客户端针对用于用户身份验证的前端页面的访问请求,其中,该访问请求为用户身份验证请求,例如,用户身份验证可以是人脸验证,对应的,用户身份验证请求可以是刷脸验证请求;
S602,业务服务器响应获取到的访问请求,获取与该访问请求对应的前端页面的目标混淆代码,其中,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;
S603,业务服务器将获取到的目标混淆代码发送给客户端,以使客户端基于该目标混淆代码渲染得到用于用户身份验证的前端页面,其中,该目标混淆代码在前端的执行结果与客户端请求访问的前端页面的原始代码在前端的执行结果保持一致。
其中,针对比较敏感的业务场景,例如刷脸登录,客户端涉及包含主要业务逻辑的前端代码的执行过程,因而,可能存在非法分子通过破解前端代码,进而对前端代码进行变更并攻击的风险,达到跳过关键校验逻辑或者替换人脸图像的目的,使得人脸验证失效,因此,增加非法分子对前端代码的破解难度。
本说明书一个或多个实施例中,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
其中,针对确定前端页面的目标混淆代码的过程,可以采用实时代码混淆的方式,还可以采用非实时代码混淆的方式,基于此,上述S602业务服务器响应获取到的访问请求,获取与该访问请求对应的前端页面的目标混淆代码,具体包括:
(1)针对采用实时代码混淆方式的情况,业务服务器在接收到访问请求后,向代码混淆装置发送混淆代码获取请求,并接收代码混淆装置发送的目标混淆代码,其中,该混淆代码获取请求携带有访问请求对应的原始代码,该目标混淆代码是代码混淆装置对前端页面的原始代码进行动态混淆处理得到的;
(2)针对采用非实时代码混淆方式的情况,可以由业务服务器从多个备选混淆代码中选取一个目标混淆代码,具体的,业务服务器在接收到访问请求后,从与该访问请求对应的前端页面的备选混淆代码中,选取一个备选混淆代码作为前端页面的目标混淆代码,其中,该备选混淆代码是代码混淆装置预先对前端页面的原始代码进行动态混淆处理后得到的;
(3)针对采用非实时代码混淆方式的情况,还可以由代码混淆装置从多个备选混淆代码中选取一个目标混淆代码,即响应于访问请求,接收代码混淆装置发送的目标混淆代码,其中,该目标混淆代码为代码混淆装置从前端页面的备选混淆代码中选取一个备选混淆代码,前端页面的备选混淆代码是代码混淆装置预先对前端页面的原始代码进行动态混淆处理后得到的,具体的,业务服务器在接收到访问请求后,向代码混淆装置发送混淆代码获取请求,代码混淆装置从与该获取请求对应的前端页面的备选混淆代码中,选取一个备选混淆代码作为前端页面的目标混淆代码,并将该目标混淆代码发送给业务服务器。
其中,无论采用实时代码混淆方式,还是采用非实时代码混淆方式,均需要代码混淆装置对前端页面的原始代码进行动态混淆处理,针对原始代码的动态混淆过程,上述对前端页面的原始代码进行动态混淆处理,具体包括:
步骤一,代码混淆装置获取业务服务器发送的前端页面的原始代码,并确定该原始代码的代码混淆要素;
步骤二,代码混淆装置根据确定出的代码混淆要素,对原始代码进行动态混淆处理。
其中,上述用于确定前端页面的混淆代码的代码混淆要素包括以下至少一种:
(1)待***的目标冗余代码以及该目标冗余代码的***位置;
(2)原始代码中待调整的目标对象以及该目标对象的调整后位置;
(3)原始代码中待压缩的目标字符;
(4)原始代码中待更名的目标元素以及该目标元素的变更后名称。
进一步的,如果目标混淆代码为从备选混淆代码中选取的,即采用非实时代码混淆方式确定目标混淆代码;此时,确定出的代码混淆要素的数量为多个,且各代码混淆要素各不相同,因此,需要确定原始代码的变体数量,即确定代码混淆要素的数量,对应的,上述步骤一确定原始代码的代码混淆要素,具体包括:
确定原始代码的变体数量,以及确定变体数量的各不相同的代码混淆要素,具体的,每个备选混淆代码是基于一个代码混淆要素对原始代码进行混淆得到的。
其中,为了保证每次给客户端返回的混淆代码可以不同,确保预先生成的多个备选混淆代码能够满足在预设时间段内的混淆代码分发的需求,基于此,上述确定原始代码的变体数量,具体包括:
确定在预设时间段内针对前端页面的目标访问次数,其中,为了保证在预设时间段内针对同一客户端对某一前端页面的访问请求,向该客户端返回的目标混淆代码各不相同,该目标访问次数可以是每个客户端的平均目标访问次数,该目标访问次数还可以是预估的非法访问并获取前端代码的次数,该预设时间段可以是代码混淆装置的相邻两次代码混淆的时间间隔,针对每一次来自同一客户端对某一前端页面的访问请求均需要给客户端反馈一个该前端页面的目标混淆代码,因此,需要得到的备选混淆代码的数量与客户端对前端页面的目标访问次数直接相关;
根据确定出目标访问次数,确定前端页面的原始代码的变体数量,其中,该变体数量不小于目标访问次数,其中,由于同一客户端对前端页面的目标访问次数与预设时间段内所需备选混淆代码的数量直接相关,因此,基于目标访问次数确定原始代码的变体数量,再基于变体数量确定代码混淆要素的数量,进而得到变体数量的备选混淆代码;另外,在具体实施时,针对采用非实时代码混淆方式而言,还可以按照预设数量和预设频率,对原始代码进行动态混淆处理,得到预设数量的备选混淆代码。
本说明书一个或多个实施例中的前端页面提供方法,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
需要说明的是,本说明书中该实施例与本说明书中上一实施例基于同一发明构思,因此该实施例的具体实施可以参见前述前端页面提供方法的实施,重复之处不再赘述。
对应上述图2至图5描述的前端页面提供方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供方法,图7为本说明书一个或多个实施例提供的前端页面提供方法的流程示意图,该方法应用于客户端,如图7所示,该方法至少包括以下步骤:
S701,客户端向业务服务器发送针对前端页面的访问请求;
S702,客户端接收业务服务器针对上述访问请求返回的前端页面的目标混淆代码,其中,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;
S703,客户端基于接收到的目标混淆代码渲染得到相应的前端页面,并显示该前端页面。
其中,目标混淆代码的确定过程参考图2至图5描述的前端页面提供方法的具体实施过程,在此不再赘述。
本说明书一个或多个实施例中的前端页面提供方法,首先,向业务服务器发送针对前端页面的访问请求;然后,接收业务服务器针对该访问请求返回的前端页面的目标混淆代码,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,且针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;最后,基于接收到的目标混淆代码渲染得到相应的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
需要说明的是,本说明书中该实施例与本说明书中第一实施例基于同一发明构思,因此该实施例的具体实施可以参见前述前端页面提供方法的实施,重复之处不再赘述。
对应上述图2至图5描述的前端页面提供方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供装置,图8为本说明书一个或多个实施例提供的前端页面提供装置的模块组成示意图,该装置用于执行图2至图5描述的前端页面提供方法,如图8所示,该装置包括:访问请求获取模块801、混淆代码获取模块802和混淆代码发送模块803,访问请求获取模块801、混淆代码获取模块802和混淆代码发送模块803依次连接。
在一个具体的实施例中,访问请求获取模块801,用于获取客户端针对前端页面的访问请求;
混淆代码获取模块802,用于响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
混淆代码发送模块803,用于将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
可选地,上述混淆代码获取模块802,具体用于:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,上述装置还包括:代码混淆模块,所述代码混淆模块用于:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,所述代码混淆要素包括:待***的目标冗余代码以及该目标冗余代码的***位置;
对应的,所述代码混淆模块,具体用于:
在预先创建的冗余代码库中,选取所述代码混淆要素包含的所述目标冗余代码;
在所述前端页面的所述原始代码中,根据所述***位置添加所述目标冗余代码。
可选地,所述代码混淆要素包括:原始代码中待调整的目标对象以及该目标对象的调整后位置;
对应的,所述代码混淆模块,具体用于:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标对象;
在所述原始代码中,根据所述调整后位置变更所述目标对象所在位置。
可选地,所述代码混淆要素包括:原始代码中待压缩的目标字符;
对应的,所述代码混淆模块,具体用于:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标字符;
在所述原始代码中,删除查找到的所述目标字符。
可选地,所述代码混淆要素包括:原始代码中待更名的目标元素以及该目标元素的变更后名称;
对应的,所述代码混淆模块,具体用于:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标元素;
在所述原始代码中,根据所述变更后名称修改所述目标元素的名称。
可选地,所述目标混淆代码为从所述备选混淆代码中选取的;
对应的,所述代码混淆模块,还具体用于:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,所述代码混淆模块,还进一步具体用于:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的前端页面提供装置,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在另一个具体的实施例中,访问请求获取模块801,用于获取客户端针对用于用户身份验证的前端页面的访问请求;
混淆代码获取模块802,用于响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
混淆代码发送模块803,用于将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
可选地,上述混淆代码获取模块802,具体用于:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,上述装置还包括:代码混淆模块,所述代码混淆模块用于:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,所述目标混淆代码为从所述备选混淆代码中选取的;
对应的,所述代码混淆模块,具体用于:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,所述代码混淆模块,进一步具体用于:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的前端页面提供装置,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
需要说明的是,本说明书中该实施例与本说明书中第一实施例基于同一发明构思,因此该实施例的具体实施可以参见前述前端页面提供方法的实施,重复之处不再赘述。
对应上述图7描述的前端页面提供方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供装置,图9为本说明书一个或多个实施例提供的前端页面提供装置的模块组成示意图,该装置用于执行图7描述的前端页面提供方法,如图9所示,该装置包括:
访问请求发送模块901,用于向业务服务器发送针对前端页面的访问请求;
混淆代码接收模块902,用于接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
前端页面显示模块903,用于基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
其中,目标混淆代码的确定过程参考图2至图5描述的前端页面提供方法的具体实施过程,在此不再赘述。
本说明书一个或多个实施例中的前端页面提供装置,首先,向业务服务器发送针对前端页面的访问请求;然后,接收业务服务器针对该访问请求返回的前端页面的目标混淆代码,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,且针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;最后,基于接收到的目标混淆代码渲染得到相应的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
需要说明的是,本说明书中该实施例与本说明书中第一实施例基于同一发明构思,因此该实施例的具体实施可以参见前述前端页面提供方法的实施,重复之处不再赘述。
对应上述图2至图5描述的前端页面提供方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供***,图10为本说明书一个或多个实施例提供的前端页面提供***的模块组成示意图,如图10所示,该***包括:
业务服务器20、代码混淆装置30、以及多个客户端10,其中,该代码混淆装置30可以设置于该业务服务器20中或者设置于不同于该业务服务器20的混淆服务器中;
客户端向业务服务器发送针对前端页面的访问请求,业务服务器在接收到该访问请求后,获取与该访问请求对应的前端页面的目标混淆代码,其中,该目标混淆代码可以是采用实时代码混淆方式确定的,也可以是采用非实时代码混淆方式确定的;
具体的,针对实时代码混淆方式确定目标混淆代码的情况,业务服务器在接收到该访问请求后,获取与该访问请求对应的前端页面的原始代码,并将该原始代码发送给代码混淆装置,代码混淆装置在接收到该原始代码后,对该原始代码进行动态混淆得到客户端请求访问的前端页面的目标混淆代码,并将该目标混淆代码发送给业务服务器,其中,代码混淆装置针对同一原始代码混淆得到的目标混淆代码是随机生成的,因此,在预设时间段内为同一客户端针对某一前端页面的多次访问请求返回的目标混淆代码可以不同,业务服务器接收该目标混淆代码;
针对非实时代码混淆方式确定目标混淆代码的情况,业务服务器预先获取前端页面的原始代码,并将该原始代码发送给代码混淆装置,代码混淆装置在接收到该原始代码后,对该原始代码进行动态混淆得到该前端页面对应的包含预设数量的备选混淆代码的混淆代码集合,并将该混淆代码集合发送给业务服务器,其中,混淆代码集合中多个备选混淆代码之间各不相同,因此,在预设时间段内为同一客户端针对某一前端页面的多次访问请求返回的目标混淆代码可以不同,业务服务器在接收到针对该前端代码的访问请求后,在混淆代码集合中选取一个备选混淆代码作为目标混淆代码;
业务服务器获取到客户端请求访问的前端页面的目标混淆代码后,将该目标混淆代码发送给对应的客户端;
客户端在接收到前端页面的目标混淆代码后,基于该目标混淆代码渲染得到对应的前端页面。
本说明书一个或多个实施例中的前端页面提供***,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
进一步地,对应上述图2至图5所示的方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种前端页面提供设备,该设备用于执行上述的前端页面提供方法,如图11所示。
前端页面提供设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器1101和存储器1102,存储器1102中可以存储有一个或一个以上存储应用程序或数据。其中,存储器1102可以是短暂存储或持久存储。存储在存储器1102的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对前端页面提供设备中的一系列计算机可执行指令。更进一步地,处理器1101可以设置为与存储器1102通信,在前端页面提供设备上执行存储器1102中的一系列计算机可执行指令。前端页面提供设备还可以包括一个或一个以上电源1103,一个或一个以上有线或无线网络接口1104,一个或一个以上输入输出接口1105,一个或一个以上键盘1106等。
在一个具体的实施例中,前端页面提供设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对前端页面提供设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取客户端针对前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
可选地,计算机可执行指令在被执行时,所述响应于所述访问请求,获取所述前端页面的目标混淆代码,包括:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,计算机可执行指令在被执行时,所述对所述前端页面的原始代码进行动态混淆处理,包括:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括:待***的目标冗余代码以及该目标冗余代码的***位置;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在预先创建的冗余代码库中,选取所述代码混淆要素包含的所述目标冗余代码;
在所述前端页面的所述原始代码中,根据所述***位置添加所述目标冗余代码。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括:原始代码中待调整的目标对象以及该目标对象的调整后位置;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标对象;
在所述原始代码中,根据所述调整后位置变更所述目标对象所在位置。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括:原始代码中待压缩的目标字符;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标字符;
在所述原始代码中,删除查找到的所述目标字符。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括:原始代码中待更名的目标元素以及该目标元素的变更后名称;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标元素;
在所述原始代码中,根据所述变更后名称修改所述目标元素的名称。
可选地,计算机可执行指令在被执行时,所述目标混淆代码为从所述备选混淆代码中选取的;
所述确定所述原始代码的代码混淆要素,包括:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,计算机可执行指令在被执行时,所述确定所述原始代码的变体数量,包括:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的前端页面提供设备,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在另一个具体的实施例中,前端页面提供设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对前端页面提供设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取客户端针对用于用户身份验证的前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
可选地,计算机可执行指令在被执行时,所述响应于所述访问请求,获取所述前端页面的目标混淆代码,包括:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,计算机可执行指令在被执行时,所述对所述前端页面的原始代码进行动态混淆处理,包括:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,计算机可执行指令在被执行时,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,计算机可执行指令在被执行时,所述目标混淆代码为从所述备选混淆代码中选取的;
所述确定所述原始代码的代码混淆要素,包括:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,计算机可执行指令在被执行时,所述确定所述原始代码的变体数量,包括:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的前端页面提供设备,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在又一个具体的实施例中,前端页面提供设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对前端页面提供设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
向业务服务器发送针对前端页面的访问请求;
接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例中的前端页面提供设备,首先,向业务服务器发送针对前端页面的访问请求;然后,接收业务服务器针对该访问请求返回的前端页面的目标混淆代码,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,且针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;最后,基于接收到的目标混淆代码渲染得到相应的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
进一步地,对应上述图2至图5所示的方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
获取客户端针对前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到所述前端页面。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述响应于所述访问请求,获取所述前端页面的目标混淆代码,包括:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述对所述前端页面的原始代码进行动态混淆处理,包括:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括:待***的目标冗余代码以及该目标冗余代码的***位置;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在预先创建的冗余代码库中,选取所述代码混淆要素包含的所述目标冗余代码;
在所述前端页面的所述原始代码中,根据所述***位置添加所述目标冗余代码。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括:原始代码中待调整的目标对象以及该目标对象的调整后位置;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标对象;
在所述原始代码中,根据所述调整后位置变更所述目标对象所在位置。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括:原始代码中待压缩的目标字符;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标字符;
在所述原始代码中,删除查找到的所述目标字符。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括:原始代码中待更名的目标元素以及该目标元素的变更后名称;
所述根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理,包括:
在所述前端页面的所述原始代码中,查找所述代码混淆要素包含的所述目标元素;
在所述原始代码中,根据所述变更后名称修改所述目标元素的名称。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述目标混淆代码为从所述备选混淆代码中选取的;
所述确定所述原始代码的代码混淆要素,包括:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述确定所述原始代码的变体数量,包括:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的存储介质存储的计算机可执行指令在被处理器执行时,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在另一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
获取客户端针对用于用户身份验证的前端页面的访问请求;
响应于所述访问请求,获取所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
将所述目标混淆代码发送给所述客户端,以使所述客户端基于所述目标混淆代码渲染得到用于用户身份验证的所述前端页面。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述响应于所述访问请求,获取所述前端页面的目标混淆代码,包括:
响应于所述访问请求,接收代码混淆装置发送的对所述前端页面的原始代码进行动态混淆处理得到的目标混淆代码;
或者,
响应于所述访问请求,从所述前端页面的备选混淆代码中,选取一个所述备选混淆代码作为所述前端页面的目标混淆代码,其中,所述备选混淆代码是代码混淆装置预先对所述前端页面的原始代码进行动态混淆处理后得到的。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述对所述前端页面的原始代码进行动态混淆处理,包括:
获取所述前端页面的原始代码,并确定所述原始代码的代码混淆要素;
根据确定出的所述代码混淆要素,对所述原始代码进行动态混淆处理。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述代码混淆要素包括以下至少一种:
待***的目标冗余代码以及该目标冗余代码的***位置;
原始代码中待调整的目标对象以及该目标对象的调整后位置;
原始代码中待压缩的目标字符;
原始代码中待更名的目标元素以及该目标元素的变更后名称。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述目标混淆代码为从所述备选混淆代码中选取的;
所述确定所述原始代码的代码混淆要素,包括:
确定所述原始代码的变体数量,以及确定所述变体数量的各不相同的代码混淆要素。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述确定所述原始代码的变体数量,包括:
确定在预设时间段内针对所述前端页面的目标访问次数;
根据所述目标访问次数,确定所述前端页面的原始代码的变体数量。
本说明书一个或多个实施例中的存储介质存储的计算机可执行指令在被处理器执行时,针对来自于客户端的前端页面的访问请求,获取基于对该前端页面的原始代码进行动态混淆得到的目标混淆代码,将该目标混淆代码发送给相应的客户端,以使客户端基于该目标混淆代码渲染得到其需要访问的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在又一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
向业务服务器发送针对前端页面的访问请求;
接收所述业务服务器返回的所述前端页面的目标混淆代码,其中,所述目标混淆代码是基于对所述前端页面的原始代码进行动态混淆后的代码确定的,且在预设时间段内同一客户端针对所述前端页面的多次访问请求中指定数量的访问请求对应的所述目标混淆代码各不相同;
基于接收到的所述目标混淆代码渲染得到所述前端页面,并显示所述前端页面。
本说明书一个或多个实施例中的存储介质存储的计算机可执行指令在被处理器执行时,首先,向业务服务器发送针对前端页面的访问请求;然后,接收业务服务器针对该访问请求返回的前端页面的目标混淆代码,该目标混淆代码是基于对前端页面的原始代码进行动态混淆后的代码确定的,且针对同一前端页面的多次访问请求中指定数量的访问请求对应的目标混淆代码各不相同;最后,基于接收到的目标混淆代码渲染得到相应的前端页面,这样能够降低暴露给用户的用于渲染前端页面的代码的可读性,并且在预设时间段内同一客户端针对某一前端页面的多次访问请求,向该客户端返回的目标混淆代码可以不同,进一步增加非法分子破解用于渲染前端页面的代码的难度,避免出现非法分子对用于渲染前端页面的代码进行恶意攻击而谋取私利的情况,达到提高前端页面在前端执行的安全性的目的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HD Cal、JHDL(Java Hardware Description Language)、Lava、Lola、My HDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个的实施例可提供为方法、***、或计算机程序产品。因此,本说明书一个或多个可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个是参照根据本说明书一个或多个实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个的实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书一个或多个的实施例而已,并不用于限制本说明书一个或多个。对于本领域技术人员来说,本说明书一个或多个可以有各种更改和变化。凡在本说明书一个或多个的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个的权利要求范围之内。