本发明专利技术公开了一种基于栈的暗链检测方法。本发明专利技术包括以下步骤:步骤1、预先对暗链进行定义;步骤2、向待检测的Web网站服务器发送HTTP请求,然后利用多线程网络爬虫技术抓取待检测的Web网页,待检测的Web网页返回页面数据;步骤3、利用无界面浏览器渲染页面数据,获得渲染后的Web网页,具体通过执行页面上JS和CSS的代码完成渲染;步骤4、基于栈对页面上的超链接进行检测;步骤5、通过直接查看暗链关键词特征库,获取页面暗链数据。本发明专利技术通过栈数据结构和无头浏览器页面渲染的方式,快速准确检测并定位出可能暗链的位置,且更加简单明了。本发明专利技术能够检测出黑客入侵网站之后或者web应用开发厂商植入的暗链。
【技术实现步骤摘要】
本专利技术涉及网络安全
,尤其涉及一种基于栈的暗链检测方法。本专利技术是一种针对Web服务平台下基于栈的暗链检测方法。
技术介绍
早期网页挂马曾是一种常见的攻击技术,攻击者在正常的网页中插入一段恶意脚本(Javascript)代码。客户端浏览器一旦访问该恶意页面,恶意代码执行则有可能被植入木马或者间谍程序。近年来,随着国家相关部门对互联网安全事件的重视、部分软件开发厂商安全意识的提高,曾经红极一时的“挂马”攻击手段已经日趋减少,然而黑色产业逐渐往暗链方向发展。“暗链”是一种搜索引擎优化的手段,用于提高它所指向的网站的搜索排名,是最有效的搜索引擎优化方法之一。“暗链”正如它的名字所描述的一样,是一种在网页页面上不可见或极易被忽视的超链接,并尽量不去破坏网页原有的结构。通常“暗链”在网站中的链接做得非常隐蔽,短时间内不易被搜索引擎察觉。目前,我国很多政府等企事业单位的门户站点被长期的“暗链攻击”,门户站点作为与公众交流的对外平台,“暗链”极大影响了政府的公信力;同时,暗链多数明确链接非法内容,进行非法买卖的违法活动。互联网上很多网页由JS,AJAX,CSS等技术动态生成,它们往往通过向服务器发送POST或GET等http请求返回的数据并不是最终我们看到的经过渲染的静态页面。传统的搜索引擎爬虫其实也存在类似的问题,如果爬取过程当中获取的不是最终经过渲染的页面,搜索准确度和数据挖掘量也会大大降低。这些那么该如何解决呢?据了解,google搜索引擎目前已经具备执行JS和CSS的能力,能够识别那些恶意欺骗的SEO连接。如何确定暗链的检测规则,当前常用的有基于规则和语义的监测方法。暗链是一个网页的隐藏文本中有一个链接,目的只是为了让google搜索
引擎可以识别而不让访问者看到。例如黑客在页面中插入一些使用”display:none”属性不可见的链接,会指向一些非法的恶意网站。Google爬虫会忽略这些刻意隐藏的链接,但被挂暗链的网站将会受到一定程度的惩罚,隐藏的文字与链接将会影响到网站排名:(1)隐藏的文字和链接以简单形式让网页使用者接近不可见或者完全不可见;(2)隐藏的文字和链接被认为是一种欺骗搜索引擎垃圾技术隐藏的文本与链接很容易被google和使用者所发现,对你的网站来说没有任何益处;通过隐藏页面文字与链接来操作Google搜索引擎会会视为欺诈行为。暗链的体现有以下几种方法:(1)白色背景上显示白色文字;(2)将文字置于图片后;(3)使用CSS隐藏文字;(4)文字异常滚动速度;(5)将字体大小设置为0;(6)通过只链接一个小字符来隐藏链接,例如段落中间的连字符。
技术实现思路
本专利技术主要解决的技术问题是在开放式网络下,针对网站管理人员不能快速准确检测并定位出暗链等缺点,结合基本栈匹配技术和页面渲染技术的优势,提出一种基于栈的暗链检测方法。为解决以上技术问题,本专利技术采用的技术方案如下:本专利技术主要是对网页爬虫爬行过程中抓取的页面利用无头(无界面)浏览器PhantomJS进行dom渲染,执行页面上JS和CSS的代码,具体包括如下步骤:步骤1、预先对暗链进行定义,同时满足以下条件的为暗链:(1)隐藏的文字和链接让网页使用者不可见;(2)隐藏的文字和链接被认为是一种欺骗搜索引擎的垃圾技术;所述的隐藏的文字和链接是直接植入的形式隐藏,或者动态混淆生成的形式隐藏;步骤2、向待检测的Web网站服务器发送HTTP请求,然后利用多线程网络爬虫技术抓取待检测的Web网页,待检测的Web网页返回页面数据;所述的向待检测的Web网站服务器发送Http(POST或GET等)请求返回的页面数据并不是最终看到的经过渲染的静态页面,而是。。步骤3、利用无界面浏览器渲染页面数据,获得渲染后的Web网页,具体通过执行页面上JS和CSS的代码完成渲染;步骤4、对页面上的超链接进行检测,解析步骤3渲染后的Web网页,具体如下:4-1、定义隐藏元素栈H、标签元素栈T和暗链关键词特征库;4-2、在对渲染后Web网页的解析过程中:若遇到开始标签则调用开始标签处理回调函数,并将开始标签存入标签元素栈T,同时根据步骤1判断该开始标签是否为隐藏元素,若是,则隐藏元素栈H的入栈值为1,否则隐藏元素栈H的入栈值为0;该入栈值所在位置与标签元素栈T中开始标签位置对应;若遇到超链接标签,先将超链接标签存入标签元素栈T,同时根据步骤1判断该超链接标签是否为隐藏元素,若是,则隐藏元素栈H的入栈值为1,同时对该超链接标签的内容进行特征关键词和暗链URL提取,并将提取出的特征关键词和暗链URL存储至暗链关键词特征库;否则判断隐藏元素栈H中前几个入栈值的总和是否大于0,若总和大于0,则判断该超链接标签为隐藏元素,该超链接标签在隐藏元素栈H的入栈值为1,同时对该超链接标签的内容进行特征关键词和暗链URL提取,并将提取出的特征关键词和暗链URL存储至暗链关键词特征库;否则该超链接标签在隐藏元素栈H的入栈值为0;该入栈值所在位置与标签元素栈T中开始标签位置对应;若遇到结束标签则调用结束标签处理回调函数,并将与该结束标签对应的开始标签从标签元素栈T中作出栈处理;同时将与该出栈的开始标签对应的隐藏元素栈H中的值作出栈处理。步骤5、通过直接查看暗链关键词特征库,获取页面暗链数据。本专利技术的有益效果是:相较于现有技术的情况,本专利技术通过栈数据结构和无头浏览器页面渲染的方式,快速准确检测并定位出可能暗链的位置。且通过栈数据结构能更加简单明了的处理暗链。本专利技术能够检测出黑客入侵网站之后或者web应用开发厂商植入的暗链。附图说明图1是本专利技术基于栈的暗链监测方法的流程图;图2是本专利技术实施例的待检测的Web网站;图3是本专利技术实施例中待检测的Web网页返回的部分页面数据。具体实施方式为了使本
的人员可以更好地理解本专利技术方案,下面结合附图对本专利技术做进一步描述,显然,所描述的实施方式仅仅是本专利技术一部分的实施方式,而不是全部的实施方式。基于本专利技术中的实施方式,本领域普通技术人员在没有做出创新性劳动前提下所获得的所有其他实施方式,都应当属于本专利技术保护的范围。如图1所示,一种基于栈的暗链检测方法,具体包括如下步骤:步骤1、预先对暗链进行定义,同时满足以下条件的为暗链:(1)隐藏的文字和链接让网页使用者不可见;(2)隐藏的文字和链接被认为是一种欺骗搜索引擎的垃圾技术;所述的隐藏的文字和链接是直接植入的形式隐藏,或者动态混淆生成的形式隐藏;步骤2、向待检测的Web网站服务器发送HTTP请求,然后利用多线程网络爬虫技术抓取待检测的Web网页,待检测的Web网页返回页面数据;所述的向待检测的Web网站服务器发送Http(POST或GET等)请求返回的页面数据并不是最终看到的经过渲染的静态页面。步骤3、利用无界面浏览器渲染页面数据,获得渲染后的Web网页,具体通过执行页面上JS和CSS的代码完成渲染;步骤4、对页面上的超链接进行检测,解析步骤3渲染后的Web网页,具体如下:4-1、定义隐藏元素栈H、标签元素栈T和暗链关键词特征库;4-2、在对渲染后Web网页的解析过程中:若遇到开始标签则调用开始标签处理回调函数,并将开始标签存入标签元素栈T,同时根据步骤1判断该开始标签是否为隐藏元素,若是,则隐藏元素本文档来自技高网...
【技术保护点】
一种基于栈的暗链检测方法,其特征在于包括如下步骤:步骤1、预先对暗链进行定义,同时满足以下条件的为暗链:(1)隐藏的文字和链接让网页使用者不可见;(2)隐藏的文字和链接被认为是一种欺骗搜索引擎的垃圾技术;所述的隐藏的文字和链接是直接植入的形式隐藏,或者动态混淆生成的形式隐藏;步骤2、向待检测的Web网站服务器发送HTTP请求,然后利用多线程网络爬虫技术抓取待检测的Web网页,待检测的Web网页返回页面数据;步骤3、利用无界面浏览器渲染页面数据,获得渲染后的Web网页,具体通过执行页面上JS和CSS的代码完成渲染;步骤4、对页面上的超链接进行检测,解析步骤3渲染后的Web网页,具体如下:4‑1、定义隐藏元素栈H、标签元素栈T和暗链关键词特征库;4‑2、在对渲染后Web网页的解析过程中:若遇到开始标签则调用开始标签处理回调函数,并将开始标签存入标签元素栈T,同时根据步骤1判断该开始标签是否为隐藏元素,若是,则隐藏元素栈H的入栈值为1,否则隐藏元素栈H的入栈值为0;该入栈值所在位置与标签元素栈T中开始标签位置对应;若遇到超链接标签,先将超链接标签存入标签元素栈T,同时根据步骤1判断该超链接标签是否为隐藏元素,若是,则隐藏元素栈H的入栈值为1,同时对该超链接标签的内容进行特征关键词和暗链URL提取,并将提取出的特征关键词和暗链URL存储至暗链关键词特征库;否则判断隐藏元素栈H中前几个入栈值的总和是否大于0,若总和大于0,则判断该超链接标签为隐藏元素,该超链接标签在隐藏元素栈H的入栈值为1,同时对该超链接标签的内容进行特征关键词和暗链URL提取,并将提取出的特征关键词和暗链URL存储至暗链关键词特征库;否则该超链接标签在隐藏元素栈H的入栈值为0;该入栈值所在位置与标签元素栈T中开始标签位置对应;若遇到结束标签则调用结束标签处理回调函数,并将与该结束标签对应的开始标签从标签元素栈T中作出栈处理;同时将与该出栈的开始标签对应的隐藏元素栈H中的值作出栈处理;步骤5、通过直接查看暗链关键词特征库,获取页面暗链数据。...
【技术特征摘要】
1.一种基于栈的暗链检测方法,其特征在于包括如下步骤:步骤1、预先对暗链进行定义,同时满足以下条件的为暗链:(1)隐藏的文字和链接让网页使用者不可见;(2)隐藏的文字和链接被认为是一种欺骗搜索引擎的垃圾技术;所述的隐藏的文字和链接是直接植入的形式隐藏,或者动态混淆生成的形式隐藏;步骤2、向待检测的Web网站服务器发送HTTP请求,然后利用多线程网络爬虫技术抓取待检测的Web网页,待检测的Web网页返回页面数据;步骤3、利用无界面浏览器渲染页面数据,获得渲染后的Web网页,具体通过执行页面上JS和CSS的代码完成渲染;步骤4、对页面上的超链接进行检测,解析步骤3渲染后的Web网页,具体如下:4-1、定义隐藏元素栈H、标签元素栈T和暗链关键词特征库;4-2、在对渲染后Web网页的解析过程中:若遇到开始标签则调用开始标签处理回调函数,并将开始标签存入标签元素栈T,同时根据步骤1判断该开始标签是否为隐藏元素,若是,则隐藏元素栈H的入栈值为1,否则隐藏元素栈H的入栈值...
【专利技术属性】
技术研发人员:董超,蒋希敏,鲁友炳,
申请(专利权)人:浙江乾冠信息安全研究院有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。