1.一种浏览器恶意扩展的检验方法,其特征在于,所述方法包括:接收终端通过所述浏览器发送的密钥获取请求;
根据所述密钥获取请求生成第一密钥,并将所述第一密钥返回给所述终端;
接收所述终端发送的第一消息认证码以及第一变动记录,其中,所述第一消息认证码由所述终端采用预定算法对所述第一密钥以及第一DOM树变化序列进行计算得到,所述第一变动记录以及所述第一DOM树变化序列由所述终端在所述浏览器运行时的DOM树发生第一变动时生成,所述第一变动记录包括所述第一变动对应的DOM变动触发信息;
对参考DOM树执行与所述DOM变动触发信息对应的变动操作,得到第二DOM树变化序列;
采用所述预定算法对所述第一密钥以及所述第二DOM树变化序列进行计算,得到第二消息认证码;
判断计算得到的所述第二消息认证码与所述第一消息认证码是否相同;
如果相同,则确定所述浏览器的页面结构未受到浏览器扩展的破坏。
2.如权利要求1所述的方法,其特征在于,所述接收终端通过所述浏览器发送的密钥获取请求之前,所述方法还包括:接收所述终端通过所述浏览器发送的websocket连线请求,根据所述websocket连线请求返回websocket连线确认信息给所述终端,以建立与所述终端之间的websocket全双工通信链路;
对应地,所述接收终端通过所述浏览器发送密钥获取请求,包括:接收所述终端通过所述浏览器,经由所述websocket全双工通信链路传输的所述密钥获取请求;
所述将所述第一密钥返回给所述终端,包括:
通过所述websocket全双工通信链路将所述第一密钥返回给所述终端;
所述接收所述终端发送的第一消息认证码以及第一变动记录,包括:通过所述websocket全双工通信链路接收所述终端发送的所述第一消息认证码以及所述第一变动记录。
3.如权利要求1所述的方法,其特征在于,所述预定算法为HMAC算法,采用所述预定算法对所述第一密钥以及所述第二DOM树变化序列进行计算,得到第二消息认证码,包括:如果所述第一密钥小于预设长度,则使用数值0对所述第一密钥进行填充,使得所述第一密钥的长度等于所述预设长度;
将填充后的所述第一密钥与第一比特序列进行异或运算,得到第二密钥;
将所述第二密钥与所述第二DOM树变化序列组合,使用单向散列函数计算所述第二密钥与所述第二DOM树变化序列组合的散列值,得到第一散列值;
将填充后的所述第一密钥与第二比特序列进行异或运算,得到第三密钥;
将所述第一散列值与所述第三密钥组合;
使用单向散列函数计算所述第一散列值与所述第三密钥组合的散列值,得到所述第二消息认证码。
4.如权利要求1所述的方法,其特征在于,所述DOM树包括多个节点,所述DOM树发送第一变动包括以下任意一项或者多项:至少一个节点作为子节点被插入到另一个节点中;
至少一个节点作为子节点从其父节点中被移除;
至少一个节点的节点特性被修改;
至少一个节点被插入文档中或者从文档中被删除;
所述多个节点中至少一个文本节点的值发生变化。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:如果所述第二消息认证码与所述第一消息认证码不相同,则确定所述浏览器的页面结构已受到浏览器扩展的破坏;
向所述终端反馈错误信息,并停止为所述终端提供服务。
6.一种浏览器恶意扩展的检验装置,其特征在于,所述装置包括:第一接收模块,用于接收终端通过所述浏览器发送的密钥获取请求;
第一生成模块,用于根据所述密钥获取请求生成第一密钥,并将所述第一密钥返回给所述终端;
第二接收模块,用于接收所述终端发送的第一消息认证码以及第一变动记录,其中,所述第一消息认证码由所述终端采用预定算法对所述第一密钥以及第一DOM树变化序列进行计算得到,所述第一变动记录以及所述第一DOM树变化序列由所述终端在所述浏览器运行时的DOM树发生第一变动时生成,所述第一变动记录包括所述第一变动对应的DOM变动触发信息;
第一变动模块,用于对参考DOM树执行与所述DOM变动触发信息对应的变动操作,得到第二DOM树变化序列;
第一计算模块,用于采用所述预定算法对所述第一密钥以及所述第二DOM树变化序列进行计算,得到第二消息认证码;
第一判断模块,用于判断计算得到的所述第二消息认证码与所述第一消息认证码是否相同;以及第一确定模块,用于如果所述第二消息认证码与所述第一消息认证码相同,则确定所述浏览器的页面结构未受到浏览器扩展的破坏。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:第一建立模块,用于接收所述终端通过所述浏览器发送的websocket连线请求,根据所述websocket连线请求返回websocket连线确认信息给所述终端,以建立与所述终端之间的websocket全双工通信链路;
其中,所述第一接收模块包括:第一接收单元,用于接收所述终端通过所述浏览器,经由所述websocket全双工通信链路传输的所述密钥获取请求;
所述第一生成模块包括:第一返回单元,用于通过所述websocket全双工通信链路将所述第一密钥返回给所述终端;
所述第二接收模块包括:第二接收单元,用于通过所述websocket全双工通信链路接收所述终端发送的所述第一消息认证码以及所述第一变动记录。
8.如权利要求6所述的装置,其特征在于,所述预定算法为HMAC算法,所述第一计算模块包括:第一填充单元,用于如果所述第一密钥小于预设长度,则使用数值0对所述第一密钥进行填充,使得所述第一密钥的长度等于所述预设长度;
第一计算单元,用于将填充后的所述第一密钥与第一比特序列进行异或运算,得到第二密钥;
第二计算单元,用于将所述第二密钥与所述第二DOM树变化序列组合,使用单向散列函数计算所述第二密钥与所述第二DOM树变化序列组合的散列值,得到第一散列值;
第三计算单元,用于将填充后的所述第一密钥与第二比特序列进行异或运算,得到第三密钥;
第一组合单元,用于将所述第一散列值与所述第三密钥组合;以及第四计算单元,用于使用单向散列函数计算所述第一散列值与所述第三密钥组合的散列值,得到所述第二消息认证码。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的方法。
10.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于:所述程序指令被处理器加载并执行时实现权利要求1至5任意一项所述的方法的步骤。