Web前端安全策略之CSRF的攻击与防御

没看过之前的文章的小伙伴,可以先看一下,这里放一个链接——Web前端安全策略之XSS的攻击与防御

  • 公众号:前端印象
  • 不定时有送书活动,记得关注~
  • 关注后回复对应文字领取:【面试题】、【前端必看电子书】、【数据结构与算法完整代码】、【前端技术交流群】

正文

===========================================================

跨站请求伪造(CSRF)


跨站请求伪造,英文全称为Cross Site Request Forgery , 缩写CSRF,这种攻击模式用通俗易懂的话来讲就是:攻击者借用你的用户身份,来完成一些需要依靠用户信息来完成的事情,例如转账 、发送邮件……

(1)跨站请求伪造的例子

我们来以转账为例,假设下面是一个转账支付页面:

在这里插入图片描述

这一段转账的流程很重要,一定要看懂:

  1. 只要用户登录了自己的账户,这个支付页面就会显示用户的名称 、以及余额, 在下面的表单里,只要填上目标账户名(target_user)以及转账金额(money),点击提交, 客户端就会将 target_usermoney 两个参数发送给服务器。

  2. 服务器接收到该请求,并且接收到了这两个参数。 然后判断转账用户是否已登录(实质就是判断客户端是否有该用户的cookie信息),是的话就将该账户里的余额转一定金额(money)给目标账户(target_user),这样就完成了钱的转账。

我们了解完正常的转账流程,我们再来看看攻击者是如何进行跨站域请求伪造的:

  1. 首先攻击者自己模仿这个转账网页, 写了一个表单, 表单的参数名也都写的跟这个网页相同,并且直接填好了提交表单的参数(转账的目标账户:攻击者自己的账户,转账金额:看攻击者想要多少钱了),如下面的代码
Title
  1. 攻击者再设置一个非常吸引人的网页,比如说该网页里面有很多美女的图片, 同时攻击者在里面放了一个 iframe标签,并且该标签设置为不可见,让别的用户无法察觉,该标签里面加载的是步骤1中设置的网页,代码如下:
Title
  1. 当用户被攻击者诱导着去点击了这个诱人的网站以后, 用户正开心的欣赏着网页里的图片呢,但是这个隐藏的 iframe 标签已经加载了攻击者设计的自动提交表单页面, 此时提交的表单参数就是攻击者设计好的,即 target_user=blackPerson&money=1000 ,该表单请求正常发送给服务器。

  2. 服务器接收到该表单请求,同时接收到请求参数。先判断用户是否登录(判断是否存在用户的 cookie 信息),因为这个请求是在正常用户浏览器上发送的, 所以服务器会判断为该用户已登录;然后就将该用户的钱转1000(money)到 blackPerson (target_user) 的账户上。

  3. 就这样,一次跨站请求伪造就完成了,看看你们以后谁还敢乱登网站看图片哈哈哈哈哈,废话不多说,我们接下来看看如何防御这种攻击吧。

(2)防御跨站请求伪造

防御跨站请求伪造的方式一共有三种:

  1. 增加一个验证码, 服务端判断验证码是否正确

  2. 使用refer验证

  3. 参数伪造 token

  • 增加一个验证码, 服务端判断验证码是否正确

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-8WS5ogo7-1712867184967)]

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值