从HTML源代码和页面正文中提取特征向量

来源:互联网 发布:安卓版cad制图软件 编辑:程序博客网 时间:2024/05/17 21:39

一、从样本页面的HTML源代码中提取特征向量

1、从HTML源代码中提取预设标签的数量

    页面的HTML源代码中存在不同的Tag标签,服务器可以对这些标签的数量进行统计,获得钓鱼网站的特征向量。以标签“title”为例,通常钓鱼网站为了防御安全检测网站的检测行为,会对title标签进行嵌套,即设置一个空的title标签,然后在该标签中再设一个真正的title标签。而正规网站的页面源代码中则不会出现这种问题,正规页面源代码中只有一层title标签。因此服务器可以将title标签的数量作为样本页面的特征向量进行提取和使用。

    实际应用中,服务器可以统计的标签包括但不限于是下述几种标签:〈title>、〈body〉、<h>、、<a>、<img> 等。

2、从HTML源代码中提取预设关键词

    HTML源代码中的一些关键词也能够体现钓鱼页面的特点,例如“window.location”、“document.net”等。服务器可以对这些特定的关键词进行统计,获得样本页面的特征向量。实际应用中,服务器可以统计样本页面中有否出现过特定关键词,也可以统计特定关键词出现的数量。

3、从HTML源代码中提取贡献度排名靠前的预设数量的代码分片

    服务器从HTML源代码中提取贡献度排名靠前的预设数量的代码分片,作为特征向量。所谓代码分片是指按照预设长度截取的代码字符串,所谓贡献度则用于表征代码分片对样本页面区别于其他页面的贡献程度。

    过程如下:

    3.1 将HTML源代码转换为二进制数据流

    3.2 通过预设字节长度的时间窗口对二进制数据流进行切片,获得多个代码分片

        本实施例中时间窗口的预设字节长度可以设置为10或者16,本实施例不对具体的字节长度进行限制。在获得数据流后,从数据流的第一个字节开始向后(当然也可以是从最后一个字节开始向前)使用时间窗口截取一个长度为10字节或16字节的字符串,然后时间窗口向后移动一个字节,继续截取下一个字符串,以此类推,直至时间窗口移动到数据流结尾处为止。

        示例性的,假设数据流长度为256字节,时间窗口的字节长度为10,服务器通过时间窗口截取的代码分片数量为247个。服务器截取的代码分片数量由数据流的长度和时间窗口的字节长度共同决定,对于N个字节的数据流而言,如果使用字节长度为X的时间窗口截取,则会获得“N-(X-1) ”个代码分片。

    3.3 对获得的代码分片按照贡献度大小进行排序

        可以使用信息增益算法(information gain)对代码分片按照贡献度排名,贡献度大的代码分片排名靠前。

    3.4 从排序后的代码分片中提取贡献度排名靠前的预设数量的代码分片

         

    进一步的,服务器可以使用时间窗口对数据流从前致后做一次切片,并进行排序获得预设数量个代码分片,然后再使用同一个时间窗口对数据流从后至前做一次切片,并进行排序获得预设数量个代码分片。最终将两次获得的代码分片作为特征向量使用。或者,服务器还可以使用不同长度的时间窗口分别对数据流执行上述步骤SI至步骤S4,然后将多次获得的代码分片一并作为特征向量使用。


二、从样本页面的正文中提取特征向量

    所谓正文是指页面中用户肉眼可见的数据内容,包括文字、图片、链接等。本实施例中主要针对正文中的文字进行处理。与HTML源代码不同,本方式中的文字为自然语言使用的文字,本实施例以中文为例,提取汉字形式的特征向量。服务器从页面中提取出文字信息,去掉标题、标签等部分,获得正文内容。然后对正文内容进行分词,获得多个符合自然语言习惯的分词,最后提取贡献度排名靠前的预设数量的分词,作为特征向量,该贡献度用于表征分词对样本页面区别于其他页面的贡献程度。

    此部分内容与自然语言处理方面的文本分类相似,不做过多赘述。


(摘自https://www.google.com/patents/CN105338001A?cl=zh)

0 0
原创粉丝点击