本申请涉及一种数据保护的方法和装置,包括:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。本申请将脚本资源源数据编译成树形源数据,并对树形源数据进行等价混淆处理,从而提高源数据的安全性;并且利用随机生成的加密密钥和加密令牌以及随机选取的加密算法,对客户端的相关参数进行数据加密,提高了数据安全性。
【技术实现步骤摘要】
【专利摘要】本申请涉及一种数据保护的方法和装置,包括:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。本申请将脚本资源源数据编译成树形源数据,并对树形源数据进行等价混淆处理,从而提高源数据的安全性;并且利用随机生成的加密密钥和加密令牌以及随机选取的加密算法,对客户端的相关参数进行数据加密,提高了数据安全性。【专利说明】一种数据保护的方法和装置
本申请涉及数据安全领域,尤其涉及一种数据保护的方法和装置。
技术介绍
当今社会对计算机等终端设备的应用越来越广泛,但是,在客户端中储存或客户端之间传输的源数据的信息安全也随之引起了公众的注意,由于没有对这些源数据进行源数据保护或保护措施较差,造成这些源数据在利用电子邮件、浏览器等应用软件进行传输、交换或存储的过程中,出现了源数据伪造、篡改、重放、丢失和泄露等现象的发生。 例如,JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给页面添加动态功能,JavaScript语言的出现使得页面和用户之间实现了一种实时性的、动态性的、交互性的关系。但是,由于JavaScript源代码(源数据)以明文形式呈现于客户端中,通过JavaScript采集的重要数据无法实现防伪造、防篡改、防重放等需求。所以,在该明文中存在的敏感源代码或者有价值的信息,可以在客户端中轻而易举地被获得,并依此针对客户端中的可能发生的行为进行非法操作。 在现有技术中,为应对上述问题,出现了在服务器侧对脚本资源进行混淆并在客户端侧对采集的数据进行加密和混淆,并传输给服务器端的方法,但是大多采用固定的加密算法、固定的加密密钥和固定的混淆参数,即静态的数据,缺少加密和混淆的更新机制,一旦被破解,数据很容易被伪造和篡改,严重威胁了源数据的安全性。
技术实现思路
本申请的主要目的在于提供一种数据保护的方法和装置,以解决现有技术存在的源数据明文容易被破解,而造成的客户端的相关数据易被伪造、篡改的问题,以提高数据的安全性。 为了解决上述技术问题,本申请的目的是通过以下技术方案实现的: 本申请提供了一种数据保护的方法,包括以下步骤:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。 优选地,在根据本申请所述的方法中,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。 优选地,在根据本申请所述的方法中,基于所述混淆策略,对所述树形源数据进行等价混淆处理的步骤,包括:根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。 优选地,在根据本申请所述的方法中,所述混淆树形源数据和所述树形源数据的执行顺序相同。 优选地,在根据本申请所述的方法中,所述将所述混淆后的树形源数据反编译成混淆后的脚本资源源数据的步骤包括:通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。 优选地,根据本申请所述的方法,还可以包括:接收来自客户端的脚本资源请求,其中,所述脚本资源请求用于获取对应的脚本资源源数据,并且在所述脚本资源请求中包含加密令牌参数;基于所述加密令牌参数,生成与所述加密令牌参数对应的加密密钥;根据所述加密令牌参数,选择加密算法,并将所述加密密钥写入所述加密算法中;将包含所述加密密钥的加密算法组装到所述脚本资源源数据中。 优选地,根据本申请所述的方法,还可以包括:接收来自客户端的校验请求,其中,所述校验请求包括:加密令牌参数及被加密的参数,其中,所述加密令牌参数为客户端提取的网页数据中的加密令牌,所述被加密的参数为客户端根据混淆后的所述加密密钥和混淆后的所述加密算法加密的客户端中的相关参数;获取与所述混淆后的加密密钥对应的解密密钥和与所述混淆后的加密算法对应的解密算法;基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证。 优选地,在根据本申请所述的方法中,所述被加密的参数包括:加密令牌参数、客户端环境参数、用户行为参数、调用其他浏览器插件参数。 优选地,在根据本申请所述的方法中,所述基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证的步骤,包括:确定所述被加密的参数为非空值数据;通过所述解密密钥和所述解密算法,对非空值的所述被加密的参数进行解密;基于解密后的参数,提取加密令牌,并确定所述提取的加密令牌参数和所述校验请求中的加密令牌参数相同。 本申请还提供了一种数据保护的装置,包括:解析模块,用于通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;形成模块,用于基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;选择模块,用于针对所述树形源数据,选择混淆策略;混淆模块,用于基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及反编译模块,用于将所述混淆树形源数据反编译成混淆后的脚本资源源数据。 优选地,在根据本申请所述的装置中,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。 优选地,在根据本申请所述的装置中,所述混淆模块还包括:生成单元,用于根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及混淆单元,基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。 优选地,在根据本申请所述的装置中,所述混淆树形源数据和所述树形源数据的执行顺序相同。 优选地,在根据本申请所述的装置中,所述反编译模块还包括:拆分单元,用于通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及构建单元,用于基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。 与现有技术相比,根据本申请的技术方案存在以下有益效果: 本申请采用编译的方式将脚本资源源数据编译成树形源数据,并利用选择的混淆策略对树形源数据进行等价混淆处理,以此降低源数据的可读性,增加了源数据的破解难度,从而提高源数据的安全性,同时保护了脚本资源源数据中本文档来自技高网...
【技术保护点】
一种数据保护的方法,其特征在于,包括:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:李剑,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。