《Web漏洞防护》读书笔记——第6章,CSRF跨站点请求伪造防护

CSRF介绍

一种欺骗受害者提交而已请求的攻击行为,会以用户的权限执行恶意操作。

站点如果已经完成了相关的认证,则服务端无法区分通过浏览器发来的请求究竟是用户发送的合法请求,还是受欺骗后发送的非法请求。

攻击的核心是利用浏览器对于站点的信任。

CSRF的分类

1.GET型CSRF:
构建超链接,发送给用户,引诱用户点击,也可以通过标签的方式构造超链接,让用户点击按钮。
如:
点我有惊喜哦!
< a href=“http://abc.csrf?param1=xxx&param2=xxx”>点我有惊喜哦!

构造自动发送请求的标签,如标签,用户对于这种攻击是无感知的,成功的可能性大:
< img src=“http://example.csrf?param1=xxx&param2=xxx” width=“10” height=“10” border=“10”>

2.POST型CSRF:
无法通过向用户发送URL地址、标签等方式进行攻击,使用post请求并不能够真正防御CSRF攻击。

攻击者可以构造FORM表单的方式,诱骗用户点击按钮,触发表单来发送POST请求。

CSRF结合XSS

使用反射性XSS漏洞,向CSRF漏洞页面上提交一条评论。
第一个过程是触发反射型XSS漏洞,用户拿到了有恶意CSRF的脚本。
第二个过程是恶意CSRF脚本被启用,像目标站点发起了非用户意愿的恶意请求。
XSS——作用于客户端(造成客户端开始发送非主人意愿的请求)
CSRF——作用于服务端(造成服务端的状态发生改变)

CSRF防护

在一定程度上防御CSRF攻击的方法:
1.仅接受POST请求
2.URL重写
3.使用JSON或XML提交请求数据

正确的CSRF防护方式:
1.验证请求同源
请求源的选择:一般情况下,将Origin头作为请求源的首选,如不存在,则使用Referer头作为请求源。
目的源的选择:一般使用URL中的Host、Port作为目的源。
请求源和目的源两个值的校验。

2.CSRF Token
服务端保存会话状态,为当前会话设置一个随机值,存储于服务端的Session中,通过隐藏域的方式嵌入到HTML页面中。
当客户端发起敏感请求时,需要携带这个随机值,服务端收到请求会先校验Token,看是否匹配。
如果匹配就接受用户的请求,反之则拒绝。
Token具有随机性,攻击者无法预测。
Token具有时效性,应该2分钟以内,客户端向服务端请求新的Token,保持Token的新鲜。

使用ESAPI和Spring Security工具产生CSRF Token。

也可以自定义CSRF的防护工具。

前后端分离问题

前端负责HTML渲染和用户交互
后端负责向前端提供数据。
有时为了解决效率及跨域的问题,会添加一个中间层,如使用Node.js实现。会导致之前添加Token的方式不再适用,为了解决这个问题,需要在服务端构造一个特殊的接口,通过这个接口,向客户端的请求返回防御CSRF的Token值。客户端请求该接口获得Token值,将它存储到前端页面中,每次向服务端发情请求的时候都会读取该Token值,插入到POST请求参数说HTTP头中,发送至服务端,服务端校验该值,从而确定是否接受该请求。

小结

目前最尝使用的CSRF防护方式为加密令牌Token。需要结合自身业务,设计符合业务特点的加密令牌防护方案。

《Web漏洞防护》读书笔记——第12章,CSRF跨站点请求伪造防护相关推荐

  1. 常见的Web攻击方式:SQL注入、XSS跨站脚本攻击、CSRF跨站点请求伪造

    常见的Web攻击有SQL注入.XSS跨站脚本攻击.跨站点请求伪造共三类,下面分别简单介绍. 1 SQL注入 1.1 原理 SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字 ...

  2. Web渗透-CSRF跨站点请求伪造(Cross—Site Request Forgery)

    CSRF/XSRF 跨站点请求伪造 `也被称为"One Click Attack"或者Session Riding` 一种对网站的恶意利用漏洞 但你不能保证以下情况不会发生: CS ...

  3. security框架工作笔记002---CSRF跨站点请求伪造(Cross—Site Request Forgery)_理解和防御

    JAVA技术交流QQ群:170933152  CSRF概念:CSRF跨站点请求伪造(Cross-Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:   ...

  4. 跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)

    CSRF介绍 什么是CSRF呢?我们直接看例子. https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829 ...

  5. 【安全牛学习笔记】CSRF跨站请求伪造攻击漏洞的原理及解决办法

    CSRF跨站请求伪造攻击漏洞的原理及解决办法 CSRF,夸张请求伪造漏洞 漏洞的原理及修复方法 1.常见的触发场景 2.漏洞原理:浏览器同源策略 3.DEMO 4.漏洞危害 5.如何避免&修复 ...

  6. 【安全牛学习笔记】CSRF跨站请求伪造***漏洞的原理及解决办法

    CSRF跨站请求伪造***漏洞的原理及解决办法 CSRF,夸张请求伪造漏洞 漏洞的原理及修复方法 1.常见的触发场景 2.漏洞原理:浏览器同源策略 3.DEMO 4.漏洞危害 5.如何避免&修 ...

  7. 【burpsuite安全练兵场-客户端12】跨站点请求伪造CSRF-12个实验(全)

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

  8. java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...

    1.跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 主要是通过在url或参数中添加脚本如: 1.URL中添加 2.参数value=. 添加一个过滤器对特殊字符进行拦截 package com.xxx ...

  9. CSRF(跨站请求伪造)漏洞

    CSRF(Cross-site request forgery) 跨站请求伪造,由客户端发起,是一种劫持受信任用户向服务器发送非预期请求的攻击方式,与XSS相似,但比XSS更难防范,常与XSS一起配合 ...

  10. Web框架之Django_09 重要组件(Django中间件、csrf跨站请求伪造)

    摘要 Django中间件 csrf跨站请求伪造 一.Django中间件: 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...

最新文章

  1. java如何读写json文件
  2. 正确的WordPress文件权限[关闭]
  3. Java实现将list数据取出并加入分隔符拼接,转换成String
  4. shell脚本启动kafka集群的多台节点
  5. java对象深克隆_JAVA中对象的克隆及深拷贝和浅拷贝
  6. python后端需要什么基础_【后端开发】python爬虫需要什么基础
  7. Exchange 2007 474 问题解决方法
  8. 张宇1000题高等数学 第十八章 多元函数积分学(一)
  9. 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第3章数据同步
  10. 深海迷航坐标传送代码_深海迷航秘籍代码大全 美丽水世界秘籍代码使用教程...
  11. java生成api文档工具_api文档自动生成工具
  12. 苹果录屏没声音_iPhone XR突然没声音如何解决?西安苹果售后维修点教你几招方法...
  13. 手机号码邮箱 验证规则(最新)
  14. icp许可证怎么申请
  15. Mac 开启 HIDPI 设置各种分辨率 HIDPI mac high sierra 2k
  16. 社区10款年度优秀插件框架盘点!
  17. HotFix移动热修复详解
  18. 清原高中2021高考成绩查询,起航青春决胜高考—清原高中2021届高三学生举行最后一次升旗仪式 ......
  19. ATF官方文档翻译(二):Authentication Framework Chain of Trust(身份验证框架和信任链)(2)
  20. 选择明文攻击和选择密文攻击

热门文章

  1. c 语言编程文档下载,C语言编程规范
  2. css3做各种角度三角形
  3. 鸿蒙系统30个G,鸿蒙系统升级,为何固定大小有5.9G,也有3点几G呢?
  4. java静态声明调用_求问 static声明的方法不是只能调用静态属性或者方法吗?
  5. java利用随机数简单发牌,!!!!!!!java新手求助,请教一个数组下标越界异常的问题...
  6. c++ builder 2010论坛_CHiF中国血液创新论坛 | 领域大咖带您开启CLL的个体化治疗之门...
  7. 计算机教学研修心得英语,英语研修心得体会
  8. C/C++[codeup 6120]String Subtraction
  9. 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 上
  10. linux运维实战centos7.6,centos7新特性6