面议元2023-02-27 06:59:11
短网址网页项目相关的关键技术:网页源码解析技术、HASH算法、KMP字符串匹配算法、正则表达式,并对其中一些技术在项目中的使用方法、具体实现和使用位置进行了说明。
短网址网页的DOM结构
文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的可处理与系统平台和编程语言无关的可扩展标记语言的标准编程接口。在标准的DOM文档中,文档在解析后被转化为DOM树,树的每个节点是一个对象。DOM模型描述了文搜的结构,同时还定义了节点对象的行为,通过将对象的方法和属性与木马特征值进行匹配,将很大一定程度上提高木马特征值的匹配效率。网页DOM树结构。
短网址网页源码解析
在短网址系统中,当短网址网页爬虫将短网址网页源数据爬取到本地后,系统会开始对短网址网页源码进行解析。
首先使用jgroup解析器将html文件转化为xhtml,再依据DOM库生成xml文件并建立DOM树。从DOM树中分别获取到包含图片和包含文字的标签,记录其属性值,
通过对比属性检测页面内容是否被篡改由于DOM树中的节点按文档中的标记或信息片段来形成的,在加载整个文档成功构建DOM树后,将符合网页挂马类型的DOM树节点的关键字输出成事件序列,然后根据运些关键字再与此结果标签的短网址网页源码与数据库中短网址网页木马特征规则属性值通过KMP字符串匹配算法进行比对。这样从DOM树节点中找到关键字后就可以利用树型模型中的节点导航寻找特定源码信息,再与木马库的正则表达式进行进一步比对,从而确认短网址网页是否被挂马,此来提高检短网址网页木马的效率,并减少因建立完整DOM树所消耗的资源。
短网址的Hash算法
短网址Hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为Hash值。Hash值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的Hash都将产生不同的值。MD5是一种符合工业标准的单向128位的Hash方案,MD5典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。
短网址系统在查询短网址网页是否被篡改时,先通过tidy工具结合String类里面的replace函数替换掉了内容基本不会变化的script和style标签,然后通过MD5加密短网址网页html代码与模板进行对比,若获取短网址网页的MD5编码与模板的相同则说明未篡改,否则进行字节匹配,查询具体的篡改位置。
短网址正表达式
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或民E),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个横式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式的匹配都是通过正则表达式引擎实现的。正则表达式引擎分为两类:基于NFA(Nondeterministic Finite Automata,非确定型有巧状态自动机巧日基于DFA(Deterministic Finite Automaton,确定型有穷状态自动机)的引擎。在正则表达式匹配过程中,遵循两条重要的规则:1、优先选择左端的结果2、对标准匹配量词m,n、+、、优先使用贪婪模式。
在短网址系统中也多次用到正则表达式,与Pattern和Matcher配合使用,使问题能更方便高效地得到解决。
原文来自:980.so