了解XSS、CSRF攻击这一篇就够了

发布时间:2023年12月22日

XSS攻击

XSS概念

定义: XSS(Cross-site scripting)跨站脚本攻击。由于前端的CSS混淆,所以取名为XSS。

原理: 跨站是指浏览器运行非本网站的内容。脚本一般是JavaScript。XSS攻击通常指的是攻击者注入恶意代码到网页使用户加载并执行攻击者恶意制造的网页程序。

在这里插入图片描述

XSS案例

  • 如果某些网站弹出的广告等等。
  • 评论区的留言等等。

在这里插入图片描述
在这里插入图片描述

XSS攻击类型

反射型

攻击流程:

在这里插入图片描述
有的会将原本带有XSS恶意攻击的链接通过短链生成新的网址。

在这里插入图片描述

攻击步骤:

1、攻击者在url后面的参数中加入恶意攻击代码
2、当用户打开恶意代码的url的时候,网站服务器端将恶意代码从服务器端提取,拼接在html中并返回给浏览器端
3、用户浏览器接收到响应后执行解析,其中恶意代码就被执行
4、攻击者将通过恶意代码来窃取到用户数据并发送到攻击者网站,攻击者会获取到比如cookie等信息,然后使用信息来冒充用户的行为

存储型

在这里插入图片描述

在这里插入图片描述

攻击步骤:

1、攻击者在网站的评论等功能模块将恶意代码伪造成评论发送请求至服务端,该恶意代码会被存储在数据库中
2、当其他用户打开含有该恶意代码的页面时,浏览器会发送请求将恶意代码从服务器端获取并渲染到页面中
3、浏览器渲染到恶意代码时会将其执行,窃取到用户数据后发送到攻击者网站,攻击者会获取到比如cookie等信息,然后使用信息来冒充用户的行为

总结

防范 XSS 是不只是服务端的任务,前端的过滤在此过程中也起到了至关重要的作用,所以防范操作需要后端和前端共同参与。虽然很难通过技术手段完全避免XSS,但我们原则上减少漏洞的产生。

CSRF

CSRF概念

定义: CSRF(Cross-Site Request Forgery)跨站请求伪造。在用户不知情的情况下,让用户在已登录的Web应用程序上执行非本意的操作。

攻击流程:

在这里插入图片描述
1、用户在一个正常的页面下浏览并且登录了该网站
2、在这个网站没有关闭的情况下,用户又打开了一个恶意的网页(上面植入了一些恶意的代码),它会伪造一个正常的报文去向正常服务器发送请求,由于用户的cookie处于登录态,所以只要伪造的请求跟正常的一样,浏览器在发送请求的时候就会自动携带上cookie,从而也就能够实现删除帖子、发布帖子等一系列操作

CSRF防御

方式一:跨域禁止携带cookie

后端处理跨域时禁止浏览器携带cookie

@CrossOrigin(allowCredentials="false",allowedHeaders="*")//解决CSRF,跨域禁止Cookie

方式二:设置SameSite属性为Strict

在这里插入图片描述
后端设置 response的SameSite属性为Strict

方式三:验证Referer字段(利用浏览器功能)

在这里插入图片描述

方式四:Token

直接使用token代替cookie,每次发送请求都需要携带token或者将token放置在请求头的某处。通常token会以本地存储的方式寄存到浏览器中。后端接收到Token后,需验证身份才放行。

文章来源:https://blog.csdn.net/weixin_44147535/article/details/135103603
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。