CSRF(Cross-Site Request Forgery)是一种常见的网络安全攻击方式。黑客利用用户已经登录过的网站的凭证,在用户毫不知情的情况下,冒充用户的身份发送请求到目标网站,以此来实施攻击。以下将介绍CSRF攻击的原理以及相应的预防方案。
1. 什么是CSRF (CSRF攻击原理)?
CSRF攻击原理如下:
- 用户正常访问A网站,A网站设置cookie被用户浏览器保存。
- 用户不关闭浏览器,直接访问恶意网站,该恶意网站内嵌了A网站接口的请求链接。
- 触发该请求链接,自动携带浏览器保存的cookie,请求成功。
2. 涉及的基础知识
CSRF攻击涉及以下基础知识:
1. Cookie
HTTP请求是无状态的,无法保存用户信息。因此出现了cookie,后端通过set-cookie,浏览器会保存该cookie。需要注意的是:
- Cookie是浏览器自动携带的,只要请求该服务器就会携带上该服务器域名下保存的cookie。
- 通过使用js对cookie的读写操作是有限制的,需要是和服务器同域名。
2. 浏览器的同源策略限制
同源策略是浏览器的重要安全策略,限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。具体限制条件包括协议、主机和端口号。
3. CSRF预防方案
1. Referer头部校验
通过检查请求头中的Referer字段,后端可以判断请求的来源地址,从而对请求进行限制。
2. CSRF-Token (推荐)
在登录页登录成功后,后端返回一个CSRF-Token,前端将该值保存起来,后面的请求都将这个token放在请求头中,后端只需要对该值进行校验。
3. SameSite属性
SameSite是专门为解决CSRF增加的HTTP头部属性字段,该属性有三个属性值:
- samesite=none
- samesite=lax
- samesite=strict
以上是CSRF攻击的原理及预防方案,通过采取相应的安全措施,可以有效地防范CSRF攻击。参考文章链接:1.
同源策略
2.
CSRF攻击原理
3.
CSRF预防方案
未经允许不得转载:大白鲨游戏网 » CSRF攻击原理及预防方案