其他分享
首页 > 其他分享> > 前端安全(一)XSS攻击

前端安全(一)XSS攻击

作者:互联网

1 简述

2 XSS分类

2.1 存储型XSS攻击

会经常发生在内容驱动、用户保存数据的社区网站上,比如具备论坛发帖、商品评论、用户私信等功能的网站,危害比较大,可以说是永久型的

2.2 反射型XSS攻击

反射型XSS漏洞常见于具有通过URL传递参数的功能网站,如网站搜索、跳转等,需要引导用户主动打开URL,和存储型XSS攻击的区别是反射型存储在URL中,存储型存储在数据库中

2.3 DOM型XSS

DOM型XSS攻击主要是前端浏览器直接取出恶意代码,而前两者是由后端先取出再拼接返回。

比如是诱导用户点击后往img标签src属性里插入恶意脚本等

以上三种XSS攻击主要都是要攻击者构造恶意的脚本执行攻击,存储型和反射型主要是后端安全问题,DOM型主要是前端安全问题

2.4 通用型XSS

通用型XSS,UXSS,主要是浏览器和浏览器扩展漏洞造成产生XSS并执行代码的XSS攻击,浏览器的漏洞到被官方发现解决都要有一段时间,并且许多的浏览器扩展程序漏洞更多,这一过程很有可能被用于UXSS。
比如一些浏览器扩展漏洞可以造成从外部获取数据填充网页表单,伪造文件访问邮件网站设置添加转发地址等

2.5 突变型XSS

突变型XSS,MXSS,大概是用户提供的原本是安全的文本信息,但一些意外的变化,可能使得原本正常的标签等不再是正常的,浏览器执行的时候会出现意外的情况
大多数MXSS是通过恶意脚本拼接在innerHTML中,通过意外的转义各种情况导致恶意的攻击
详见这一次,彻底理解XSS攻击

3 XSS攻击的预防

XSS攻击有两大要素

3.1 输入过滤

过滤调用户输入时攻击者伪造的脚本的代码,但攻击者绕开前端输入直接构造请求就可以避免掉

3.2 前端渲染时代码和数据分开

在前端渲染的过程中,明确告诉浏览器,下面要设置的内容是文本(.innerText),还是属性(.setAttribute),还是样式(.style)等等。浏览器不会被轻易的被欺骗,执行预期外的代码了。并在JS中,可以使用textContent或者innerText的地方,尽量不使用innerHTML;

3.3 预防DOM型XSS攻击

主要是防止JS把不可信的数据当作代码执行,尽量使用 .textContent、.setAttribute(),减少使用.innerHTML、.outerHTML、document.write()

3.4 转义HTML

把 & < > " ’ / 这几个字符转义掉,不过只对于HTML标签文字内容和属性值有效,其他的CSS内联样式,内联JSON无效,也可以使用一些完善的转义库进行转义

美团XSS
这一次,彻底理解XSS攻击

标签:XSS,浏览器,攻击,前端,用户,恶意,URL,攻击者
来源: https://blog.csdn.net/OriginalMIxss/article/details/120939679