前端攻击-XSS

218 阅读1分钟

XSS攻击叫做跨站脚本攻击,一共有三种:存储型XSS、反射型XSS、DOM型XSS。

一、存储型XSS

存储型XSS的过程是这样的:

  • 攻击者将一段恶意代码注入到服务器。

  • 当用户请求含有恶意代码的页面时,服务器返回。

  • 客户端执行恶意代码,而已代码将用户的Cookie等信息发送给攻击者的服务器。

  • 攻击者拿到Cookie信息就可以登录用户账号。

这种攻击,恶意代码一般是在向评论、留言板等,前端能做的就是对输入的内容进行过滤和转义。

二、反射型XSS

反射型XSS的过程是这样的:

  • 攻击者在url的参数中加入一段script代码,比如:http://localhost:3000/?xss=。xss后面是一段js代码,被过滤了。

  • 在请求是发向服务器,服务器对这个地址没有进行校验就给通过,返回给客户端。

  • 客户端的页面上就会有该alert。 

这个过程中的alert换成获取用户cookie的代码,就可以获取到用户的cookie信息,登录用户账号。

一般在搜索框或者url中,不保存在服务器的。

三、DOM型XSS

DOM型XSS的特点是在网络传输或者用户使用页面的过程中,通过注入一段恶意代码,改变页面的结构或者数据。

总结:

对于xss攻击的防范方法有:

  • 客户端对输入进行转义和过滤。
  • 客户端对提交的数据进行转移和过滤。
  • 使用csp指定信任源。
  • 对cookie设定httpOnly属性,禁止js操作cookie。