【网络安全】CSRF详解

CSRF「Cross-site request forgery」

我们知道了同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源,然后又引入 CSP 策略来加以限制;默认 XMLHttpRequest 和 Fetch 不能跨站请求资源,然后又通过 CORS 策略来支持其跨域。

所以安全性降低了,为了更好的技术应用,同时也带来了更多的安全隐患,如XSS,CSRF。

什么是CSRF?

跨站请求伪造,冒用Cookie中的信息,发起请求攻击。

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

CSRF攻击过程

满足了上面的必要条件才可以触发

  1. 当用户已经登录成功了一个网站
  2. 然后通过被诱导进了第三方网站「钓鱼网站」
  3. 跳转过去了自动提交表单,冒用受害者信息
  4. 后台则正常走逻辑将用户提交的表单信息进行处理

CSRF攻击类型

GET类型

img标签 script。

<!DOCTYPE html>
<html>
  <body>
    <h1>黑客的站点</h1>
    <img src="https://www.bank.com/withdraw?amount=1000?for=hacker">
  </body>
</html>
​
黑客将转账的请求接口隐藏在 img 标签内,欺骗浏览器这是一张图片资源。当该页面被加载时,浏览器会自动发起 img 的资源请求,如果服务器没有对该请求做判断的话,那么服务器就会认为该请求是一个转账请求,于是用户账户上的 100 就被转移到黑客的账户上去了。 
POST类型

表单中的post请求

<form action="http://bank.com/withdraw" method=POST>
    <input type="hidden" name="account" value="xiaoming" />
    <input type="hidden" name="amount" value="10
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值