需要支持的词法切分原则为:
单双引号包含的内容 ‘XSS’
http/https链接 http://xi.baidu.com/xss.js
<>标签 <script>
<>标签开头 <BODY
属性标签 ONLOAD=
<>标签结尾 >
函数体 “javascript:alert(‘XSS’);”
字符数字标量 代码实现举例如下:

另外,为了减少向量空间,需要把数字和字符以及超链接范化,具体原则为:

结合词集模型,完整的流程举例如下:

训练模型
将范化后的向量X以及对应的长度矩阵X_lens输入即可,需要X_lens的原因是参数样本的长度可能不一致,所以需要单独输入。
验证模型
整个系统运行过程如下:
验证阶段利用训练出来的HMM模型,输入观察序列获取概率,从而判断观察序列的合法性,训练样本是1000条典型的XSS攻击日志,通过分词、计算词集,提炼出200个特征,全部样本就用这200个特征进行编码并序列化,使用20000条正常日志和20000条XSS攻击识别(类似JSFUCK这类编码的暂时不支持),准确率达到90%以上,其中验证环节的核心代码如下:
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。