回答面试的话:(简单说即可)
XSS攻击就是指 不法分子在浏览器中执行恶意脚本,然后拿到用户的信息进行操作,主要分为存储型、反射型和文档型,防范措施有:
- 一个信念:不要相信用户的任何输入,对输入的内容进行转码或者过滤,让其不可执行
- 两个利用:利用 浏览器中的内容安全策略CSP、利用Cookie的HttpOnly属性
1.XSS全称
XSS:(全称),即跨站脚本,为了和CSS区分,故叫XSS。
2.XSS是啥干啥
XSS攻击是指 浏览器中执行恶意脚本,拿到用户信息,并进行的不法操作。
这些不法操作可以完成以下事情:
- 窃取Cookie
- 监听用户行为,比如输入账 密码后直接发送到黑客服务器
- 修改DOM伪造登录表单
- 在页面中生成浮窗广告
3.XSS攻击实现的三种方式
1. 存储型
存储型,就是将恶意脚本存储到服务端的的数据库,然后再客户端执行这些脚本,从而达到攻击。
场景:
比如:我们在他们会再留言评论区提交一段脚本代码,那评论内容就存到了数据库,在页面渲染评论区的时候,就直接执行了这段恶意脚本的评论内容,相当于执行一段位置逻辑的JS代码,是很可怕的。
所以,前后端对用户的这种输入要进行转义。
2. 反射性
反射型,就是将恶意脚本作为 络请求的一部分。
**场景:**比如作为请求参数:
这样,在服务器会拿到title参数,然后将内容返回给浏览器,浏览器将这些内容作为HTML的一部分解析,发现是一个脚本,直接执行,这样就被攻击了。
之所以叫反射型,是因为恶意脚本是通过作为 络请求的参数,经过服务器,然后再反射到HTML文档中,解析执行。和存储型不一样的是,服务器并不会存储这些恶意脚本。
3.文档型
文档型,**就是在数据传输过程中,劫持到 络数据包,然后修改里面的html文档,**从未进行攻击。
这种方式包括等
4.防范措施
XSS攻击的共同点:都是让恶意脚本直接能在浏览器中执行。
所以我们要避免这些恶意脚本代码的执行:一个信念,两个利用。
1. 一个信念
千万不要相信任何用户的输入。
无论在前端或者服务端,都要对用户的输入进行或
转码
如:转义之后
这样的代码在html解析过程中就无法执行了。
过滤
将标签给删除,服务端接收请求时,拿到script标签直接删除。
2. 两个利用
利用CSP
CSP,即浏览器中的内容安全策略,就是由服务器决定浏览器加载哪些资源,具体可以完成以下功能:
-
限制其他域下的资源加载
-
禁止向其他域提交数据
-
提供上 机制,及时发现XSS攻击
利用HttpOnly
很多XSS攻击都是通过窃取Cookie方式,而设置Cookie的HttpOnly属性为false后,JS便无法读取Cookie的值。
/p>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!