能不能说一说XSS攻击?

回答面试的话:(简单说即可)

XSS攻击就是指 不法分子在浏览器中执行恶意脚本,然后拿到用户的信息进行操作,主要分为存储型、反射型和文档型,防范措施有:

  • 一个信念:不要相信用户的任何输入,对输入的内容进行转码或者过滤,让其不可执行
  • 两个利用:利用 浏览器中的内容安全策略CSP、利用Cookie的HttpOnly属性

1.XSS全称

XSS:(全称),即跨站脚本,为了和CSS区分,故叫XSS。

2.XSS是啥干啥

XSS攻击是指 浏览器中执行恶意脚本,拿到用户信息,并进行的不法操作。

这些不法操作可以完成以下事情:

  1. 窃取Cookie
  2. 监听用户行为,比如输入账号密码后直接发送到黑客服务器
  3. 修改DOM伪造登录表单
  4. 在页面中生成浮窗广告

3.XSS攻击实现的三种方式

1. 存储型

存储型,就是将恶意脚本存储到服务端的的数据库,然后再客户端执行这些脚本,从而达到攻击。

场景

比如:我们在他们会再留言评论区提交一段脚本代码,那评论内容就存到了数据库,在页面渲染评论区的时候,就直接执行了这段恶意脚本的评论内容,相当于执行一段位置逻辑的JS代码,是很可怕的。

所以,前后端对用户的这种输入要进行转义。

2. 反射性

反射型,就是将恶意脚本作为网络请求的一部分。

**场景:**比如作为请求参数:

这样,在服务器会拿到title参数,然后将内容返回给浏览器,浏览器将这些内容作为HTML的一部分解析,发现是一个脚本,直接执行,这样就被攻击了。

之所以叫反射型,是因为恶意脚本是通过作为网络请求的参数,经过服务器,然后再反射到HTML文档中,解析执行。和存储型不一样的是,服务器并不会存储这些恶意脚本。

3.文档型

文档型,**就是在数据传输过程中,劫持到网络数据包,然后修改里面的html文档,**从未进行攻击。

这种方式包括等

4.防范措施

XSS攻击的共同点:都是让恶意脚本直接能在浏览器中执行。

所以我们要避免这些恶意脚本代码的执行:一个信念,两个利用。

1. 一个信念

千万不要相信任何用户的输入。

无论在前端或者服务端,都要对用户的输入进行或

转码

如:转义之后

这样的代码在html解析过程中就无法执行了。

过滤

将标签给删除,服务端接收请求时,拿到script标签直接删除。

2. 两个利用

利用CSP

CSP,即浏览器中的内容安全策略,就是由服务器决定浏览器加载哪些资源,具体可以完成以下功能:

  1. 限制其他域下的资源加载

  2. 禁止向其他域提交数据

  3. 提供上报机制,及时发现XSS攻击

    利用HttpOnly

    很多XSS攻击都是通过窃取Cookie方式,而设置Cookie的HttpOnly属性为false后,JS便无法读取Cookie的值。

/p>

来源:不能懒鸭

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月23日
下一篇 2022年1月24日

相关推荐