在渗透测试中发现当在输入框中输入js脚本后,会在浏览器中执行,这就造成了XSS(跨站脚本攻击),因此要对代码进行加固。下面以vue环境为例,介绍下修复该漏洞的方式:
// 一、执行依赖
npm install xss -save
// 二、在main.js中引入
import xss from 'xss';
// 三、定义全局xss方法
Object.defineProperty(Vue.prototype, '$xss', {
value: xss
})
// 四、针对需要渲染的页面,调用$xss()方法即可生效
<span v-html="$xss(content, options)"></span>
// 例:若想对内容中的span标签及标签的class属性不进行拦截,则需对方法中的options做如下配置:
data() {
return {
// xss白名单处理
options: {
whiteList: {
span: ['class']
}
}
}
}
// 注:whiteList可配置多种标签
// 如:a: ["target", "href", "title"], img: ["src", "alt", "title", "width", "height"]等...