一种网站监测方法、装置、设备及可读存储介质与流程

文档序号:19156549发布日期:2019-11-16 00:52阅读:198来源:国知局
一种网站监测方法、装置、设备及可读存储介质与流程

本申请涉及计算机领域,特别涉及一种网站监测方法、装置、设备及可读存储介质。



背景技术:

随着计算机网络和通讯技术的快速发展,利用开放的网络环境进行全球通信已成为时代发展的趋势。web应用越来越广泛,网站建设和网页设计的需求越来越大,网络安全问题日益突显。

目前,网站篡改是一类主要的网络攻击形式,该攻击形式对网络安全运营造成了严重的威胁。针对网站篡改问题,目前最常用的技术是采用web篡改监测系统对目标网站进行监测。然而常见的web篡改监测系统一般只是通过扫描两次页面,根据页面对比分析判断是否被篡改,这种方式至少存在以下两个缺点:第一,对一些正常更新频繁的动态网站来说,很多正常变更的内容会被判定为篡改内容,误报率很高;第二,当非法人员采用user-agent和referer伪造来实施篡改时,即便结合user-agent和referer对目标网站进行两次访问以判断是否发生篡改,也存在一定的误报率,不利于监管人员对网站安全事件监测。

可见,如何降低网站篡改监测方案的误报率,提升网络安全,是亟待本领域技术人员解决的问题。



技术实现要素:

本申请的目的是提供一种网站监测方法、装置、设备及可读存储介质,用以解决传统的网站篡改监测方案的误报率较高,导致网络安全性较低的问题。具体方案如下:

第一方面,本申请提供了一种网站监测方法,包括:

获取初始http请求,修改所述初始http请求的头部字段中的useragent参数和referer参数,并将修改得到的目标http请求发送至目标网站,以获取所述目标网站的当前页面源代码;

在所述当前页面源代码不同于所述目标网站的初始页面源代码时,确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异;并向所述目标网站发送所述初始http请求,以获取所述目标网站的真实页面源代码;

在所述真实页面源代码与所述初始页面源代码相同时,或在所述真实页面源代码不同于所述初始页面源代码且所述第一差异不同于第二差异时,确定所述目标网站被篡改,并生成提示信息,其中所述第二差异为所述真实页面源代码与所述初始页面源代码之间的差异。

优选的,所述获取初始http请求,修改所述初始http请求的头部字段中的useragent参数和referer参数,包括:

获取当前搜索引擎的http请求,以作为初始http请求;

修改所述初始http请求的头部字段中的useragent参数和referer参数,得到另一搜索引擎的http请求,以作为目标http请求。

优选的,在所述获取初始http请求之前,还包括:

根据网站监测请求,确定待监测的一个或多个目标网站。

优选的,在所述获取初始http请求之前,还包括:

利用网络爬虫爬取目标网站的初始页面源代码。

优选的,所述在所述真实页面源代码与所述初始页面源代码相同时,或在所述真实页面源代码不同于所述初始页面源代码且所述第一差异不同于第二差异时,确定所述目标网站被篡改,包括:

判断所述真实页面源代码与所述初始页面源代码是否相同;

若不相同,则确定所述目标网站被篡改;

若相同,则确定所述真实页面源代码与所述初始页面源代码之间的差异,以作为第二差异;

判断所述第一差异与所述第二差异是否相同;

若等于,则确定所述目标网站为正常变更;

若不等于,则确定所述目标网站被篡改。

优选的,所述确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异,包括:

确定所述当前页面源代码和所述初始页面源代码之间的差异行数或差异字,以作为第一差异。

优选的,所述确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异,包括:

利用linux的diff命令确定所述当前页面源代码和所述初始页面源代码之间的差异行数,以作为第一差异。

第二方面,本申请提供了一种网站监测装置,包括:

当前页面源代码获取模块:用于获取初始http请求,修改所述初始http请求的头部字段中的useragent参数和referer参数,并将修改得到的目标http请求发送至目标网站,以获取所述目标网站的当前页面源代码;

真实页面源代码获取模块:用于在所述当前页面源代码不同于所述目标网站的初始页面源代码时,确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异;并向所述目标网站发送所述初始http请求,以获取所述目标网站的真实页面源代码;

篡改判定模块:用于在所述真实页面源代码与所述初始页面源代码相同时,或在所述真实页面源代码不同于所述初始页面源代码且所述第一差异不同于第二差异时,确定所述目标网站被篡改,并生成提示信息,其中所述第二差异为所述真实页面源代码与所述初始页面源代码之间的差异。

第三方面,本申请提供了一种网站监测设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序以实现如上所述的一种网站监测方法的步骤。

第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,用于实现如上所述的一种网站监测方法的步骤。

本申请所提供的一种网站监测方法、装置、设备及可读存储介质,方案包括:获取初始http请求,修改初始http请求的头部字段中的useragent参数和referer参数,并将修改得到的目标http请求发送至目标网站,以获取目标网站的当前页面源代码;在当前页面源代码不同于目标网站的初始页面源代码时,确定当前页面源代码和初始页面源代码之间的差异,以作为第一差异;并向目标网站发送初始http请求,以获取目标网站的真实页面源代码;在真实页面源代码与初始页面源代码相同时,或在真实页面源代码不同于初始页面源代码且第一差异不同于第二差异时,确定目标网站被篡改,并生成提示信息,其中第二差异为真实页面源代码与初始页面源代码之间的差异。

可见,该方案通过修改http请求的useragent参数和referer参数以进行篡改分析,在判断出修改后的http请求获取到的页面源代码与该网站的初始页面源代码存在差异时,不直接得出发生篡改的结论,而是通过对比未修改的http请求获取到的页面源代码、修改后的http请求获取到的页面源代码、初始页面源代码,分析前后页面差异信息,从而判断该网站是否为动态网站以及此次变更是否为正常变更,降低了网站篡改误报率,提升了识别网站篡改的准确性和效率。

附图说明

为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请所提供的一种网站监测方法实施例一的实现流程图;

图2为本申请所提供的一种网站监测方法实施例二的实现流程图;

图3为本申请所提供的一种网站监测装置实施例的功能框图;

图4为本申请所提供的一种网站监测设备实施例的结构示意图。

具体实施方式

本申请的核心是提供一种网站监测方法、装置、设备及可读存储介质,降低了网站篡改误报率,提升了识别网站篡改的准确性和效率。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面对本申请提供的一种网站监测方法实施例一进行介绍,参见图1,实施例一包括:

s101、获取初始http请求,修改所述初始http请求的头部字段中的useragent参数和referer参数,并将修改得到的目标http请求发送至目标网站,以获取所述目标网站的当前页面源代码;

http请求,即超文本传输协议(hypertexttransferprotocol)请求,http请求的头部字段包括useragent参数和referer参数,其中user-agent用于表示发送http请求的用户终端的系统环境,系统环境包括作系统及版本、cpu类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等;referer用于表示用户终端发送http请求所使用的统一资源定位符,当浏览器向web服务器发送http请求的时候,一般会带上referer,以告知服务器当前请求是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。

上述初始http请求具体可以为当前搜索引擎的http请求,通过修改初始http请求的头部字段中的useragent参数和referer参数,得到另一搜索引擎的http请求,即上述目标http请求。

s102、在所述当前页面源代码不同于所述目标网站的初始页面源代码时,确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异;并向所述目标网站发送所述初始http请求,以获取所述目标网站的真实页面源代码;

具体的,在获取得到目标网站的当前页面源代码之后,判断当前页面源代码与初始页面源代码是否相同;若相同,则确定目标网站未发生篡改;若不相同,则执行如上述s102所述的步骤。上述初始页面源代码为预先获取得到的,以作为监测网站篡改过程的参考依据。具体的,可以预先利用网络爬虫等技术爬取目标网站的页面源代码,以作为初始页面源代码,并保存在文本文件中。

s103、在所述真实页面源代码与所述初始页面源代码相同时,或在所述真实页面源代码不同于所述初始页面源代码且所述第一差异不同于第二差异时,确定所述目标网站被篡改,并生成提示信息,其中所述第二差异为所述真实页面源代码与所述初始页面源代码之间的差异。

具体的,在获取到目标网站的真实页面源代码之后,先判断真实页面源代码与初始页面源代码是否相同;若相同,则确定目标网站发生篡改;若不相同,则确定真实页面源代码与初始页面源代码之间的差异信息,以作为第二差异;进而判断第一差异与第二差异是否相同;若相同,则确定目标网站发生正常变更,即未发生篡改;若不相同,则确定目标网站发生篡改。

本实施例所提及的第一差异是指当前页面源代码与初始页面源代码之间的差异信息,第二差异是指真实页面源代码与初始页面源代码之间的差异信息,该差异信息具体可以利用现有的用于对比两个文档差异的工具或相关命令得到,差异信息具体可以为差异行数或差异字。

本实施例所提供一种网站监测方法,在修改http请求的useragent参数和referer参数以进行篡改分析的基础上,在判断出修改后的http请求获取到的页面源代码与该网站的初始页面源代码存在差异时,不直接得出发生篡改的结论,而是通过对比未修改的http请求获取到的页面源代码、修改后的http请求获取到的页面源代码、初始页面源代码,分析前后页面差异信息,从而判断该网站是否为动态网站以及此次变更是否为正常变更,降低了网站篡改误报率,提升了识别网站篡改的准确性和效率。

下面开始详细介绍本申请提供的一种网站监测方法实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。

参见图2,实施例二具体包括:

s201、根据网站监测请求,确定待监测的一个或多个目标网站;

上述网站监测请求可以为响应用户预设操作生成的,也可以为在满足预设条件时自动生成的,例如,用户可以设置在未来的某个或某些时间点自动执行监测操作,或者按照某种周期执行监测操作。

s202、利用网络爬虫爬取目标网站的初始页面源代码,并保存至文本文件中;

s203、获取当前搜索引擎的http请求,以作为初始http请求;修改所述初始http请求的头部字段中的useragent参数和referer参数,得到另一搜索引擎的http请求,以作为目标http请求,并将修改得到的目标http请求发送至目标网站,以获取所述目标网站的当前页面源代码;

具体的,组装初始http请求,修改初始http请求头部字段内容,作为一种具体的实施方式,可以修改useragent为百度蜘蛛的useragent,referer修改为百度蜘蛛的referer,发送测试数据包,请求目标网站的页面源代码。也就是说,将useragent修改为:mozilla/5.0(compatible;baiduspider/2.0;+http://www.baidu.com/search/spider.html),referer修改为:https://www.baidu.com。值得一提的是,可以使用软件编程技术实现对目标网站的访问,也可以使用例如postman等第三方请求测试工具进行验证。

s204、判断当前页面源代码与初始页面源代码是否相同;若相同,则判定目标网站未发生篡改,否则跳转至s205;

s205、确定所述当前页面源代码和所述初始页面源代码之间的差异行数,以作为第一差异行数;并向所述目标网站发送所述初始http请求,以获取所述目标网站的真实页面源代码;

作为一种具体的实施方式,利用linux的diff命令确定所述当前页面源代码和所述初始页面源代码之间的差异行数,以作为第一差异行数。

s206、判断真实页面源代码与初始页面源代码是否相同,若相同,则跳转至s209;否则,跳转至s207;

s207、真实页面源代码与所述初始页面源代码之间的差异行数,以作为第二差异行数;

s208、判断第一差异行数与第二差异行数是否相等;若相等,则确定目标网站为动态网站,此次变更为正常变更,即目标网站未发生篡改;否则,跳转至s209;

s209、确定所述目标网站被篡改,确定篡改内容并生成提示信息。

可见,本实施例提供的一种网站监测方法,在修改http请求的useragent参数和referer参数以进行篡改分析的基础上,在判断出修改后的http请求获取到的页面源代码与该网站的初始页面源代码存在差异时,不直接得出发生篡改的结论,而是通过对比未修改的http请求获取到的页面源代码、修改后的http请求获取到的页面源代码、初始页面源代码,分析前后页面差异行数,从而判断该网站是否为动态网站以及此次变更是否为正常变更,降低了网站篡改误报率,提升了识别网站篡改的准确性和效率。

下面对本申请实施例提供的一种网站监测装置进行介绍,下文描述的一种网站监测装置与上文描述的一种网站监测方法可相互对应参照。

如图3所示,该装置包括:

当前页面源代码获取模块301:用于获取初始http请求,修改所述初始http请求的头部字段中的useragent参数和referer参数,并将修改得到的目标http请求发送至目标网站,以获取所述目标网站的当前页面源代码;

真实页面源代码获取模块302:用于在所述当前页面源代码不同于所述目标网站的初始页面源代码时,确定所述当前页面源代码和所述初始页面源代码之间的差异,以作为第一差异;并向所述目标网站发送所述初始http请求,以获取所述目标网站的真实页面源代码;

篡改判定模块303:用于在所述真实页面源代码与所述初始页面源代码相同时,或在所述真实页面源代码不同于所述初始页面源代码且所述第一差异不同于第二差异时,确定所述目标网站被篡改,并生成提示信息,其中所述第二差异为所述真实页面源代码与所述初始页面源代码之间的差异。

在一些具体的实施例中,上述当前页面源代码获取模块301具体用于:

获取当前搜索引擎的http请求,以作为初始http请求;修改所述初始http请求的头部字段中的useragent参数和referer参数,得到另一搜索引擎的http请求,以作为目标http请求。

在一些具体的实施例中,还包括:

目标网站确定模块:用于根据网站监测请求,确定待监测的一个或多个目标网站。

在一些具体的实施例中,还包括:

初始页面源代码获取模块:用于利用网络爬虫爬取目标网站的初始页面源代码。

在一些具体的实施例中,篡改判定模块303具体用于:

判断所述真实页面源代码与所述初始页面源代码是否相同;

若不相同,则确定所述目标网站被篡改;

若相同,则确定所述真实页面源代码与所述初始页面源代码之间的差异,以作为第二差异;

判断所述第一差异与所述第二差异是否相同;

若等于,则确定所述目标网站为正常变更;

若不等于,则确定所述目标网站被篡改。

在一些具体的实施例中,真实页面源代码获取模块302具体用于:

确定所述当前页面源代码和所述初始页面源代码之间的差异行数或差异字,以作为第一差异。

在一些具体的实施例中,真实页面源代码获取模块302具体用于:

利用linux的diff命令确定所述当前页面源代码和所述初始页面源代码之间的差异行数,以作为第一差异。

本实施例的网站监测装置用于实现前述的网站监测方法,因此该装置中的具体实施方式可见前文中的网站监测方法的实施例部分,例如,当前页面源代码获取模块301、真实页面源代码获取模块302、篡改判定模块303,分别用于实现上述网站监测方法中步骤s101,s102,s103。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的网站监测装置用于实现前述的网站监测方法,因此其作用与上述方法的作用相对应,这里不再赘述。

此外,本申请还提供了一种网站监测设备,如图4所示,包括:

存储器100:用于存储计算机程序;

处理器200:用于执行所述计算机程序以实现如上所述的一种网站监测方法的步骤。

最后,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,用于实现如上所述的一种网站监测方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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