网站大量收购独家精品文档,联系QQ:2885784924

开发安全 - CSRF 详解.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

开发安全-CSRF详解

#技术/安全

Excerpt

包含:Java基础,Java部分源码,JVM,Spring,SpringBoot,SpringCloud,数据库原理,MySQL,ElasticSearch,

MongoDB,Docker,k8s,CICD,Linux,DevOps,分布式,中间件,开发⼯具,Git,IDE,源码阅读,读书笔记,开源项

⽬...

CSRF(Cross-siterequestforgery跨站请求伪造,也被称成为“oneclickattack”或者sessionriding,通常缩写为

CSRF或者XSRF,是⼀种对⽹站的恶意利⽤。

开发安全-CSRF详解

CSRF简介

CSRF如何攻击

CSRF理解的注意点

⿊客能拿到Cookie吗?

什么样的请求是要CSRF保护的?

为什么对请求做了CSRF拦截,但还是会报CRSF漏洞?

CSRF防御常规思路

验证HTTPReferer字段

在请求地址中添加token并验证

在HTTP头中⾃定义属性并验证

CSRF防御实战

⾮框架型-⾃定义XXXCsrfFilter

SpringSecurity-什么时候禁⽤CSRF

SpringSecurity-CookieCsrfTokenRepository.withHttpOnlyFalse()

SpringSecurity-newCookieCsrfTokenRepository()

SpringSecurity-CookieCsrfTokenRepository如何⼯作的呢?

SpringSecurity-CsrfFilter是如何完成拦截和校验的呢?

SpringSecurity-默认对哪些Method拦截呢?

SpringSecurity-HttpSessionCsrfTokenRepository

SpringSecurity-设置Csrf不对会造成哪些错误呢?

总结与展望

参考⽂章

CSRF简介

CSRF简介

CSRF(CrossSiteRequestForgery,跨站域请求伪造)是⼀种⽹络的攻击⽅式,它在2007年曾被列为互联⽹20⼤安

全隐患之⼀。其他安全隐患,⽐如SQL脚本注⼊,跨站域脚本攻击等在近年来已经逐渐为众⼈熟知,很多⽹站也

都针对他们进⾏了防御。然⽽,对于⼤多数⼈来说,CSRF却依然是⼀个陌⽣的概念。即便是⼤名鼎鼎的Gmail,在

2007年底也存在着CSRF漏洞,从⽽被⿊客攻击⽽使Gmail的⽤户造成巨⼤的损失。

CSRF如何攻击

先看图:

从上图可以看出,A⽹站通过cookie来识别⽤户(C),当⽤户成功进⾏身份验证之后浏览器就会得到⼀个标识其身

份的cookie,只要不关闭浏览器或者退出登录,以后访问A⽹站会⼀直带上这个cookie。如果这期间浏览器被⼈控制

着向A⽹站发起请求去执⾏⼀些⽤户不想做的功能(⽐如添加账号),这就是会话劫持了。因为这个不是⽤户真正

想发出的请求,这就是所谓的“请求伪造”。此外,由于请求可以从第三⽅⽹站提交,所以前缀跨站⼆字,即从B⽹

站发起。

具体到银⾏转账为例(这是⽹上的⼀个例⼦,⼀⼤坨...):

CSRF攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从⽽在并未授权的情况下执

⾏在权限保护之下的操作。⽐如说,受害者Bob在银⾏有⼀笔存款,通过对银⾏的⽹站发送请求http://bank.exam

ple/withdraw?account=bobamount=1000000for=bob2可以使Bob把1000000的存款转到bob2的账号下。通常

情况下,该请求发送到⽹站后,服务器会先验证该请求是否来⾃⼀个合法的session,并且该session的⽤户Bob已

经成功登陆。⿊客Mallory⾃⼰在该银⾏也有账户,他知道上⽂中的URL可以把钱进⾏转帐操作。Mallory可以⾃

⼰发送⼀个请求给银⾏:http://

文档评论(0)

185****5527 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档