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就达到了模拟用户操作的目的

场景

CSRF原理及防护_第1张图片
用户登录,进入个人信息修改页面
CSRF原理及防护_第2张图片
对用户修改页面抓包
CSRF原理及防护_第3张图片

可以看到参数拼接在url栏上,此时我们对url上的参数进行修改
CSRF原理及防护_第4张图片
再将此页面数据包做成一个点击请求
CSRF原理及防护_第5张图片
CSRF原理及防护_第6张图片
复制HTML结构
新建一个1.html文件用记事本打开,将html代码复制进去
CSRF原理及防护_第7张图片
双击打开1.html
CSRF原理及防护_第8张图片
点击这个请求就会对用户修改页面发起请求,请求的内容就是我们修改过的。
CSRF原理及防护_第9张图片

四、防护

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

你可能感兴趣的:(web漏洞,csrf,前端,web安全)