XSS(Cross Site Script)即跨站脚本攻击,它将恶意脚本注入到目标网页中,用户在访问该页面时,有可能造成信息泄露,用户行为被劫持、感染并传播蠕虫病毒等危害。
防范方法如下列:
1.为Cookie添加HTTPOnly标记,使得客户端不能通过javascript读取Cookie信息。
2.对提交服务器中的信息做输入检查,例如白名单过滤、把字符编码成HTML实体等。
function htmlEscape(text){
return text.replace(/[<>"&]/g, function(match, pos, originalText){
switch(match){
case "<": return "<";
case ">":return ">";
case "&":return "&";
case """:return """;
}
});
}
白名单过滤
通过 whiteList 来指定,格式为:{'标签名': ['属性1', '属性2']}。不在白名单上的标签将被过滤,不在白名单上的属性也会被过滤。以下是示例:

// 只允许a标签,该标签只允许href, title, target这三个属性
var options = {
whiteList: {
a: ["href", "title", "target"]
}
};

// 使用以上配置后,下面的HTML
 <a href="#" onclick="hello()"><i>大家好</i></a>
// 将被过滤为
 <a href="#">大家好</a>

默认白名单参考 xss.whiteList。
第一个是match正则匹配到的值 第二个是偏移量 第三个是原字符串
3.对输出到页面中的信息做输出检查,检查方式和第二种类似。
4.输入内容长度检查,