暗链,又称“黑链”、“隐链”,是指看不见但可以被搜索引擎识别并计算权重的外链,入侵者通过非法技术在网页中植入暗链,能够达到提高暗链所指网站的搜索引擎排名并从中盈利的目的,暗链的植入不仅影响了网站的正常运行,而且向公众传播了大量非法信息,危害巨大。目前网页暗链检测主要有以下两种方法:
1)基于规则的暗链检测:利用隐藏技术的识别并结合特征黑名单来判定网页是否被植入暗链。这种方法对于暗链的某些隐藏方式识别较弱,同时也会由于黑名单关键字本身的限制而导致漏报、误报。
本发明的主要目的在于提出一种网页暗链检测方法、装置及计算机可读存储介质,旨在提高网页暗链检测的准确率。
获取预设网页分类模型的训练集,所述训练集中的网页根据所述网页分类模型被划分为表示不含有暗链的正例样本和表示含有暗链的负例样本,且所述正例样本和所述负例样本分别被划分为若干网页类型;
基于邻近算法从所述训练集中选取若干个与所述待检测网页的文本特征向量符合预设相似条件的网页的文本特征向量,作为所述待检测网页的文本特征向量的邻近向量,并根据所述网页分类模型确定所述邻近向量对应的网页类型,作为所述待检测网页的候选网页类型;
判断概率最大值对应的候选网页类型属于所述正例样本还是所述负例样本,若属于所述负例样本,则判定所述待检测网页中含有暗链。
获取待检测网页的文本特征集和所述训练集中的网页的文本特征集,其中,所述待检测网页的文本特征集和所述训练集中的网页的文本特征集包含相同的关键词;
根据所述关键词在所述待检测网页的文本特征集中的词频和权重进行计算,得到所述待检测网页的文本特征向量;
根据所述关键词在所述训练集中的网页的文本特征集中的词频和权重进行计算,得到所述训练集中的网页的文本特征向量。
优选地,所述基于邻近算法从所述训练集中选取若干个与所述待检测网页的文本特征向量符合预设相似条件的网页的文本特征向量,作为所述待检测网页的文本特征向量的邻近向量的步骤包括:
根据获取到的所述待检测网页的文本特征向量和所述训练集中的网页的文本特征向量,计算所述待检测网页与所述训练集中的网页的文本相似度;
若计算得到的所述文本相似度大于或等于预设阈值,则将对应的所述训练集中的网页的文本特征向量作为所述待检测网页的文本特征向量的邻近向量。
优选地,所述根据获取到的所述待检测网页的文本特征向量和所述训练集中的网页的文本特征向量,计算所述待检测网页与所述训练集中的网页的文本相似度的步骤包括:
分别计算每个候选网页类型下的文本相似度的平均值,作为所述待检测网页属于对应候选网页类型的概率。
优选地,所述获取待检测网页的文本特征向量和所述训练集中的网页的文本特征向量的步骤之前,还包括:
此外,为实现上述目的,本发明还提供一种网页暗链检测装置,所述装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网页暗链检测程序,所述网页暗链检测程序被所述处理器执行时实现如上所述的网页暗链检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网页暗链检测程序,所述网页暗链检测程序被处理器执行时实现如上所述的网页暗链检测方法的步骤。
本发明提出的一种网页暗链检测方法、装置及计算机可读存储介质,通过建立包含有若干网页类型的网页分类模型,相对于现有的二分类机器学习技术提高了训练集中网页样本的分类粒度,同时,引入邻近算法从训练集中确定候选网页类型,很大程度排除了训练集中的误差项,从而提高了网页暗链检测的准确率。
本发明实施例的主要解决方案是:获取预设网页分类模型的训练集,所述训练集中的网页根据所述网页分类模型被划分为表示不含有暗链的正例样本和表示含有暗链的负例样本,且所述正例样本和所述负例样本分别被划分为若干网页类型;获取待检测网页的文本特征向量和所述训练集中的网页的文本特征向量;基于邻近算法从所述训练集中选取若干个与所述待检测网页的文本特征向量符合预设相似条件的网页的文本特征向量,作为所述待检测网页的文本特征向量的邻近向量,并根据所述网页分类模型确定所述邻近向量对应的网页类型,作为所述待检测网页的候选网页类型;分别计算所述待检测网页属于每个候选网页类型的概率;判断概率最大值对应的候选网页类型属于所述正例样本还是所述负例样本,若属于所述负例样本,则判定所述待检测网页中含有暗链。
本发明通过建立包含有若干网页类型的网页分类模型,相对于现有的二分类机器学习技术提高了训练集中网页样本的分类粒度,同时,引入邻近算法从训练集中确定候选网页类型,很大程度排除了训练集中的误差项,从而提高了网页暗链检测的准确率。
本发明实施例终端可以是pc,也可以是智能手机、平板电脑、便携计算机等具有显示功能的终端设备。
如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
优选地,终端还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及网页暗链检测程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的网页暗链检测程序,并执行以下操作:
进一步地,处理器1001可以调用存储器1005中存储的网页暗链检测程序,还执行以下操作:
步骤s10,获取预设网页分类模型的训练集,所述训练集中的网页根据所述网页分类模型被划分为表示不含有暗链的正例样本和表示含有暗链的负例样本,且所述正例样本和所述负例样本分别被划分为若干网页类型;
为保证本发明正常实施,需预先设置一个网页分类模型以对互联网网页进行类别划分,在该模型下,互联网网页被划分为含有暗链的网页和不含有暗链的网页两大类,在这两大类下互联网网页又被划分为若干不同的网页类型。比如,含有暗链的网页类型包括网游外挂、医疗广告、色情赌博、办证培训、商业广告等,不含有暗链的网页类型包括正常的游戏咨询网页、医疗机构网页、高校主页、购物网页、新闻咨询网页等,其中,划分的具体网页类型和划分粒度可根据实际需要进行灵活设置。
在进行网页暗链检测时,首先,获取网页分类模型的训练集,即根据网页分类模型获取若干网页样本作为网页分类模型的训练集。可以理解的是,上述网页分类模型的训练集中的网页可以划分为正例样本和负例样本,其中,正例样本表示不含有暗链的网页样本,负例样本表示含有暗链的网页样本,且正例样本和负例样本又分别可以划分为若干网页类型。
该步骤中,应用防火墙获取待检测网页的文本特征向量和训练集中的每个网页的文本特征向量,从而建立向量空间模型。
向量空间模型中存在多个文本特征向量,其中,文本(document,用d表示)泛指各种机器可读的记录,特征项(term,用t表示)是指出现在文本d中且能够代表该文本内容的基本语言单位,主要是由词或者短语构成。文本可以用特征项集表示为d(t1,t2,…,tn),其中tk是特征项,1<=k<=n,例如一篇文档中有a、b、c、d四个特征项,那么这篇文档就可以以特征向量d(a,b,c,d)进行表示。
对于一个网页,其初始文本可以是该网页的网页源码数据,通过对网页源码数据进行预处理和特征提取,再将特征进行向量化,即可得到该网页的文本特征向量。
步骤s30,基于邻近算法从所述训练集中选取若干个与所述待检测网页的文本特征向量符合预设相似条件的网页的文本特征向量,作为所述待检测网页的文本特征向量的邻近向量,并根据所述网页分类模型确定所述邻近向量对应的网页类型,作为所述待检测网页的候选网页类型;
该步骤中,邻近算法又称k-nn(k-nearestneighbor)算法或k-邻近算法,k-nn算法的核心思想是:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别中样本的特性。根据这个思想,利用k-nn算法可以从训练集中选取若干个与待检测网页的文本特征向量相似的网页的文本特征向量,作为该待检测网页的文本特征向量的邻近向量,然后根据预先设置的网页分类模型可以确定邻近向量的对应的网页类型,该网页类型可以作为待检测网页的候选网页类型。
比如,预先设置的网页分类模型的训练集中收录的样本包括网游外挂c1、商业广告c2两类负例样本和游戏资讯网页c3、新闻资讯网页c4两类正例样本,针对一个待检测网页的文本特征向量,通过k-nn算法从训练集中找到了k个与之邻近的向量,然后按照预先设置的网页分类模型,可以确定这k个邻近向量对应的网页属于c1、c2或c3类,则此时应将c1、c2和c3类作为该待检测网页的候选网页类型,而c4类则作为噪声排除,对应地,此时待检测网页的网页类型可能为网游外挂、商业广告或游戏资讯网页。
作为一种实施方式,可以根据属于某一类的邻近向量的数量得到待检测网页属于该类的概率。具体地,可以统计上述k个邻近向量分别属于c1、c2和c3类的数量,比如,在k个邻近向量中,若有k1个属于c1类,k2个属于c2类,k3个属于c3类,且k1>k2>k3,则可以判定待检测网页属于c1类的概率最大。
步骤s50,判断概率最大值对应的候选网页类型属于所述正例样本还是所述负例样本,若属于所述负例样本,则判定所述待检测网页中含有暗链。
在进行上述概率计算后,取概率最大值对应的候选网页类型作为待检测网页的网页类型,然后判断该网页类型属于正例样本还是负例样本,若属于负例样本,则判定待检测网页中含有暗链,若属于正例样本,则判定待检测网页中不含有暗链。比如,上述待检测网页属于c1类的概率最大,而c1类为网游外挂类网页,属于含有暗链的负例样本,此时可以判定待检测网页中也含有暗链,由此实现了对待检测网页暗链的检测。
需要说明的是,为使网页的最终判定结果更加准确,减少误报、漏报的情况发生,本实施例还可以结合现有的修正技术(如结合黑白名单特征库)对上述已经进行判定的网页进行进一步检测判定,具体实施例时可进行灵活设置。
本实施例提出的一种网页暗链检测方法,通过建立包含有若干网页类型的网页分类模型,相对于现有的二分类机器学习技术提高了训练集中网页样本的分类粒度,同时,引入邻近算法从训练集中确定候选网页类型,很大程度排除了训练集中的误差项,从而提高了网页暗链检测的准确率。
进一步地,参照图
3,图3为本发明网页暗链检测方法第二实施例的流程示意图。基于上述图2所示的实施例,步骤s20可以包括:
步骤s21,获取待检测网页的文本特征集和所述训练集中的网页的文本特征集,其中,所述待检测网页的文本特征集和所述训练集中的网页的文本特征集包含相同的关键词;
步骤s22,根据所述关键词在所述待检测网页的文本特征集中的词频和权重进行计算,得到所述待检测网页的文本特征向量;
步骤s23,根据所述关键词在所述训练集中的网页的文本特征集中的词频和权重进行计算,得到所述训练集中的网页的文本特征向量。
在本实施例中,以文本特征向量中的特征项为关键词进行说明。首先,获取待检测网页的文本特征集和训练集中的网页的文本特征集,为保证这两个文本特征集具有可比性,这两个文本特征集包含相同的关键词。比如,获取训练集中的网页的文本特征集为d(t1,t2,…,tm),则获取待检测网页的文本特征集也应该为d(t1,t2,…,tm),其中t1,t2,…,tm为特征项,即关键词,m为关键词的数量。
在获取到关键词后,再根据关键词的词频和权重分别进行计算,得到待检测网页的文本特征向量和训练集中的网页的文本特征向量。作为一种实施方式,可通过tf-idf(termfrequency–inversedocumentfrequency,词频--逆向文本频率)技术计算得到文本特征向量,其原理为:词频计算参照tf公式tf=n/m,即在在一篇m个词的文章中有n个该关键词,则tf=n/m为该关键词在这篇文章中的词频;逆向文本频率是用于衡量关键词权重的指数,可由公式idf=log(d/dw)计算而得,其中d为语料库的文档总数,dw为关键词出现过的文档数,dw越大,说明该关键词在越多的文档中出现过,该关键词就越不足以成为本文档的区别特征项,因而其权重越小。计算基于idf的加权词频,即用关键词tx的词频乘以tx的逆向文本频率(wx=tf(tx)*idf(tx)),即可得到文本特征集d(t1,t2,…,tm)对应的文本特征向量d(w1,w2,…,wm)。
根据上述原理计算待检测网页的文本特征向量的过程为:获取待检测网页的文本dk,根据关键词在dk中出现的次数和dk中词语总数计算各个关键词在dk中的词频,再将计算得到的词频基于idf进行加权,最终得到待检测网页的文本特征向量dk(wk1,wk2,…,wkm)。同理,可以计算得到训练集中的每个网页的文本特征向量。
以训练集中的一个网页为例,获取该网页的文本特征集的方式可以为:首先,获取该网页的文本,该文本可以是网页源码数据,然后,对获取到的文本进行分词和去停用词处理,分词是将一个文字序列切分成一个一个单独的词,去停用词是按照停用词表中的词语将语料中对文本内容识别意义不大但出现频率很高的词、符号、标点及乱码等去掉,如“的,和,要,是,这”等词几乎出现在任何一篇中文文本中,但是它们对文本所表达的意思几乎没有任何贡献,将这些词设置在停用词表中,就可以根据停用词表将文本中这些没有实际意义的词去掉。由此,得到了该网页文本的预处理结果。
之后,可以计算预处理结果中的词语的词频,若某词语的词频达到一预设值,则将该词语作为文本关键词,由此提取文本的所有关键词,进而得到网页的文本特征集d(t1,t2,…,tm),该文本特征集同时作为待检测网页的文本特征集。
进一步地,基于上述图3所示的本发明网页暗链检测方法第二实施例,提出本发明网页暗链检测方法第三实施例。
在本实施例中,所述基于邻近算法从所述训练集中选取若干个与所述待检测网页的文本特征向量符合预设相似条件的网页的文本特征向量,作为所述待检测网页的文本特征向量的邻近向量的步骤可以包括:
步骤s31,根据获取到的所述待检测网页的文本特征向量和所述训练集中的网页的文本特征向量,计算所述待检测网页与所述训练集中的网页的文本相似度;
步骤s32,若计算得到的所述文本相似度大于或等于预设阈值,则将对应的所述训练集中的网页的文本特征向量作为所述待检测网页的文本特征向量的邻近向量。
本实施例通过k-nn算法计算待检测网页与训练集中的网页的文本相似度,进而确定待检测网页的文本特征向量的邻近向量。作为一种实施方式,上述步骤s31可以包括:
步骤s311,计算所述待检测网页的文本特征向量和所述训练集中的网页的文本特征向量之间的夹角的余弦值;
设训练集中某一网页的文本特征向量为d0(w01,w02,…,w0m),待检测网页的文本特征向量为dk(wk1,wk2,…,wkm),则待检测网页和训练集中的该网页的文本相似度的计算公式为:
其中,x表示待检测网页样本,xi表示训练集中的第i个网页样本,θ表示向量dk和d0的夹角。
将上述余弦值作为待检测网页和训练集中的第i个网页的文本相似度值,该值越大,则θ越小,表示待检测网页与训练集中的第i个网页的文本相似度越高;该值越小,则θ越大,表示待检测网页与训练集中的第i个网页的文本相似度越低。由此可以计算待检测网页与训练集中的每个网页的文本相似度。
本实施例通过计算待检测网页的文本特征向量与训练集中的网页的文本特征向量之间的夹角的余弦值,能够实现定量分析待检测网页和训练集中的网页的文本相似度,分析方式较为合理可靠。当然,计算文本相似度并不限于上述算法,比如,还可以计算向量待检测网页的文本特征向量与训练集中的网页的文本特征向量之间的欧式距离作为文本相似度的衡量标准等,具体实施时可进行灵活设置。
参照图
5,图5为图3中步骤s40的细化步骤示意图。基于本发明网页暗链检测方法第三实施例,步骤s40可以包括:
步骤s42,分别计算每个候选网页类型下的文本相似度的平均值,作为所述待检测网页属于对应候选网页类型的概率。
在本实施例中,在计算所述待检测网页属于每个候选网页类型的概率时,首先基于预设候选网页类型将之前计算得到的若干个文本相似度进行划分,然后分别计算每个候选网页类型下的文本相似度的平均值,作为待检测网页属于对应候选网页类型的概率。具体地,计算待检测网页属于某一候选网页类型ci的概率可参照如下公式:
其中,x表示待检测网页样本,xi表示训练集中的第i个网页样本,ci表示knn模型中的第i个候选类,sim(x,xi)表示样本x和xi的相似度,xi∈knn表示样本xi属于knn模型中的某一候选类,y(xi,ci)为类别归属函数,取值范围为0或1(当xi属于ci时取
1,当xi不属于ci时取0),ki表示训练集中属于ci类别的样本个数。
比如,在k个邻近向量中有k1个向量属于c1类,则将之前计算得到的k1个文本相似度取平均值,即得到待检测网页属于c1类的概率。
获取待检测网页的方式包括主动获取和被动获取。主动获取即通过爬虫程序定时爬取预设网页并获取网页内容,其中,爬虫程序的抓取目标可以为与某一特定主题内容相关的网页,也可以根据需要扩大抓取范围,具体实施中可由网络管理人员预先进行设置;被动获取即在侦测到网络访问请求时,将该网络访问请求的响应网页作为待检测网页,这样,当用户访问网站的流量通过应用防火墙时,就可以实时检测出用户当前访问的网页是否存在暗链。
主动获取无需人工干预,且可以进行远程的大规模检测,而被动获取则实现了网页暗链检测的实时性。
若待检测网页被判定为含有暗链,则可将该待检测网页进行标记,并作为负例样本保存至网页分类模型的训练集中,若待检测网页被判定为不含有暗链若训练集中的样本,则可将待检测网页作为正例样本保存至网页分类模型的训练集中,如此将使得网页分类模型的训练集更为优化,为后续检测网页暗链的准确性提供了保证。
本发明网页暗链检测装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网页暗链检测程序,所述网页暗链检测程序被所述处理器执行时实现如上所述的网页暗链检测方法的步骤。
其中,在所述处理器上运行的网页暗链检测程序被执行时所实现的方法可参照本发明网页暗链检测方法各个实施例,此处不再赘述。
本发明计算机可读存储介质上存储有网页暗链检测程序,所述网页暗链检测程序被处理器执行时实现如上所述的网页暗链检测方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。