「浏览器」跨站请求伪造CSRF攻击的原理以及防范措施

前言

HTTP 是一个无状态的协议,比如需要账号密码登录的网站这个场景,为了避免每次都需要重复输入,有一种方案就是Cookie,具体使用不做赘述,但是这样带来了一些安全问题。跨站请求伪造(CSRF)攻击是一种利用网站间信任关系的攻击方式。攻击者诱使受害者在用户的浏览器中执行不安全的操作,而用户在不知情的情况下发送请求,这些请求包含了对于受信任站点有效的身份验证信息。
在这里插入图片描述

CSRF原理

  1. 用户登录:用户访问并登录一个受信任的网站A,例如银行网站,登录成功后浏览器会保存这个网站的认证信息(如Cookie)。
  2. 攻击嵌入:攻击者通过电子邮件、论坛、社交媒体等渠道,诱使用户访问一个恶意网站B。这个恶意网站上嵌入了对网站A进行操作的请求代码,比如修改密码、转账等操作的请求。
  3. 自动请求:当用户访问这个恶意网站B时,嵌入在网站B中的恶意代码会自动向网站A发送请求。由于用户浏览器中已经保存了网站A的认证信息(比如Cookies),这些请求会被网站A误认为是用户自愿发起的,且认证合法。
  4. 执行操作:网站A接收到这些恶意请求后,由于认证信息有效,会执行请求中的操作,如转账、修改密码等。这些操作实质上是未经用户同意的,但由于网站A无法区分这些请求是否真正由用户发起,因而导致攻击成功。

防范措施

  • 使用CSRF Token:网站为每次用户会话生成一个随机的请求令牌(CSRF Token),并在前端页面中嵌入。所有的请求都需要包含这个令- 牌,服务器验证令牌是否匹配,从而防止外部的恶意请求。
  • 验证Referer头:验证请求的来源,确保请求是从受信任的来源发出的。
  • SameSite Cookie属性:适当设置Cookie的SameSite属性,来限制第三方网站对Cookie的访问,可以减少CSRF攻击的风险。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoe_ya

如果你成功申请,可以打赏杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值