CSRF原理及防护

一、CSRF是什么

CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,也被称为 one-click attack 或者 session riding。

二、CSRF原理

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。
攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,就会去执行并非用户本意的操作,这个过程用户是感觉不到的。

三、CSRF攻击的流程

1、浏览并登录信任网站A
2、验证通过,在用户处产生A的Cookie
3、用户在没有登出网站A的情况下,访问恶意网站B
4、网站B要求访问网站A,并发出一个request请求
5、根据网站B在4中的请求浏览器会带着2中的cookie访问网站A
6、A不知道5中的请求是用户发出的还是B发出的,由于浏览器自动带上用户的cookie,所以A会根用户的权限处理5的请求,这样B就达到了模拟用户操作的目的

场景

在这里插入图片描述
用户登录,进入个人信息修改页面
在这里插入图片描述
对用户修改页面抓包
在这里插入图片描述

可以看到参数拼接在url栏上,此时我们对url上的参数进行修改
在这里插入图片描述
再将此页面数据包做成一个点击请求
在这里插入图片描述
在这里插入图片描述
复制HTML结构
新建一个1.html文件用记事本打开,将html代码复制进去
在这里插入图片描述
双击打开1.html
在这里插入图片描述
点击这个请求就会对用户修改页面发起请求,请求的内容就是我们修改过的。
在这里插入图片描述

四、防护

1、对敏感信息的操作增加安全的token
使用加密算法生成token:使用安全的加密算法(如RSA、AES等)生成token,确保token的安全性。
设置token的有效期限:token应该有一个有效期限,超过该期限后将无法使用,以防止token被长时间滥用
限制token的访问权限:设置合理的访问权限,只允许授权用户使用token进行敏感操作
2、对敏感信息的操作增加安全的验证码
强制使用复杂的验证码:确保验证码的复杂性,包括数字、字母和特殊字符的组合,以增加破解难度
设置验证码的有效期限:验证码应该有一个有效期限,超过该期限后将无法使用,以防止验证码被长时间滥用;
3、对敏感信息的操作实施安全的逻辑流程比如修改密码时,需要先校验旧密码等。
4、检查 HTTP Referer 字段
验证 HTTP Referer 字段是否符合预期的来源页面。可以根据预设的域名或者特定的 URL 地址来判断是否来自可信的来源
如果 HTTP Referer 字段符合预期,允许进行敏感信息操作。
如果 HTTP Referer 字段不符合预期,拒绝或者限制敏感信息操作,并记录相关日志以供后续分析和审计。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值