文档章节

初识CSRF

murenshan
 murenshan
发布于 2014/06/19 00:40
字数 1019
阅读 32
收藏 1
点赞 0
评论 0

CSRF(先来个概念认识)

Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS), 但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击 相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。(来自百度百科)

二.CSRF可以做什么?

  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。


查阅相关文献(参考白帽子讲web安全)

三、浏览器的cookie策略:

浏览器中cookie分为:

        1、session cookie  (临时cookie):没有expire时间,浏览器关闭就失效;session cookie保存在浏览器内存空间中;

         2、third-party cookie:本地cookie:本地cookie是保存在本地,只有到指定的expire时间过期之后才失效;

不同浏览器安全策略:“如果浏览器从一个域的页面要加载另一个域的资源,由于安全性,有些浏览器会阻止third-part cookie”

注意:在同一个浏览器进程中,session cookie将被发送,third-party cookie未必被发送;所以,产生CSRF攻击一般大多发送session cookie;

CSRF不仅可以通过GET也可以通过模拟POST数据,使用javascript进行提交;(白帽讲web安全有实例)

(http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html有相关实例)

CSRF的防御:

一、验证码:

        验证码被认为是对抗CSRF攻击最简洁而最有效的防御方法;强制用户必须与应用进行交互,防止了一些恶意跨站请求造成的威胁;

    缺陷:并非所有的地方都能用验证码,影响用户体验;

二、Referer check

    Referer check 在互联网中主要是“防盗链”;用于检查是否为合法的源;

    缺陷:服务器并非什么时候都能取到referer;很多用户出于隐私保护考虑,限制referer。在某些情况下,浏览器也不会发送referer,如:从https 跳转到HTTP,出于安全的考虑,浏览器不会发送referer;

    注意:无法依赖于referer check 作为防御CSRF的主要手段。但是通过referer check来监控CSRF攻击的发生,倒是一个可行方法;

(referer 实验配置后续补上)

三、通过anti CSRF Token

    CSRF本质:重要操作的所有参数都是可以被攻击者猜测到的;

    在服务器上session中存下一个随机的token,然后,将token同时保存在客户端的hidden input 标签使用POST方式提交给服务器做验证;每个token在一定时间内有效。当然如果客户端post之后验证完token要进行销毁、或者保存一段时间;

(有些是相关重要页面保存一个token);

注意:token这种方式也只是仅仅用于防御CSRF。其实,事实上token是很容易被窃取的;

    当网站同时存在XSS漏洞时,这个方案就会变成无效,因为XSS可以模拟客户端浏览器执行任意操作,在XSS攻击下,完全可以请求页面后,读取TOKEN值,然后模拟构造出一个合法的请求=====》称之为XSRF;

    XSS带来的问题,应该使用XSS的防御方案给予解决,否则,CSRF 的token防御就是形同虚设了;

(实验后补-------未完待续







© 著作权归作者所有

共有 人打赏支持
murenshan
粉丝 1
博文 2
码字总数 2201
作品 0
厦门
程序员
Cookie-Form型CSRF防御机制的不足与反思

Cookie-Form型CSRF防御机制的不足与反思 离别歌2016-09-2650 阅读 cookieformcsrf 今天看了 https://hackerone.com/reports/26647 有感。这个漏洞很漂亮,另外让我联想到很多之前自己挖过的漏...

离别歌 ⋅ 2016/09/26 ⋅ 0

Ext.Error: Unable to parse the JSON returned by the server: You're trying to decode an invalid JSON String

Firefox给出的错误 Ext.Error: Unable to parse the JSON returned by the server: You're trying to decode an invalid JSON String:...

anonymous_007 ⋅ 2014/05/28 ⋅ 2

转Elasticsearch顶尖高手系列课程

Elasticsearch,是目前行业中非常热门的一个技术。Elasticsearch是一种分布式的海量数据搜索与分析的技术,可以用于电商网站、门户网站、企业IT系统等各种场景下的搜索引擎,也可以用于对海量...

小花卷juan ⋅ 2017/06/24 ⋅ 0

让Spring Security 来保护你的Spring Boot项目吧

参考资料: 书籍:Spring实战(第4版) 第9章和第14章 Spring Security 参考手册 初识 Spring Security 程序猿DD的Spring Security学习笔记 Spring Security 简介 Spring Security是一个能够为...

潇潇漓燃 ⋅ 05/19 ⋅ 0

TCP连接的 建立和终止 (TCP MM 和 GG的 初识的三 和 分手的四)

声明: MM: 服务器端: GG:客户端。本文虚构,如有雷同,纯属巧合。 TCP MM 和 GG的 初识的三 和 分手的四。 初识 : 1. GG 向 MM 发送 一道 秋波 (SYN, SED=X) 示好,询问MM是否愿意交往。...

赵绪 ⋅ 2011/08/31 ⋅ 0

初识Gradle系列一

初识Gradle系列一 Arccode's blog2017-10-226 阅读 JavaGradle 背景 以前听说过Gradle,也查阅过相关资料,自定义生命周期等等,比Maven牛X, 但Maven在项目中已经够用, 所以一直未做构建迁移. 今...

Arccode's blog ⋅ 2017/10/22 ⋅ 0

Cross Site Request Forgery protection

The CSRF middleware and template tag provides easy-to-use protection against Cross Site Request Forgeries. This type of attack occurs when a malicious Web site contains a link, ......

岭南六少 ⋅ 2011/08/21 ⋅ 0

MQTT基础概念介绍

源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 在MQTT群里有很多群友经常会把MQTT、MQTT Broker、MQTT Client这些概念搞混淆。 也有很多群友不知道MQTT相关产品去哪里找...

pipinet123 ⋅ 2017/03/08 ⋅ 0

《网络黑白》一书所抄袭的文章列表

这本书实在是垃圾,一是因为它的互联网上的文章拼凑而成的,二是因为拼凑水平太差,连表述都一模一样,还抄得前言不搭后语,三是因为内容全都是大量的科普,不涉及技术也没有干货。所以大家也...

wizardforcel0 ⋅ 2016/11/13 ⋅ 0

ECharts简单Demo之WEBFORM版本

前言 本来今天上午已经快写完了,一个ctrl+w关闭了,草稿箱不知道怎么回事,没有保存OO “…下午边看LPL比赛又重写一次。 这篇博文应该是在2016年就完成的,因为种种原因耽误了。本来想实现一...

andrewniu ⋅ 2017/12/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 35分钟前 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 45分钟前 ⋅ 0

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_object TYPE gos_s_obj.DA...

JerryWang_SAP ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

导读 人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云...

问题终结者 ⋅ 今天 ⋅ 0

637. Average of Levels in Binary Tree - LeetCode

Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这个树,把map里面填值,遍历结束后,再遍历这个map,把每...

yysue ⋅ 今天 ⋅ 0

IDEA配置和使用

版本控制 svn IDEA版本控制工具不能使用 VCS-->Enable Version Control Integration File-->Settings-->Plugins 搜索Subversion,勾选SVN和Git插件 删除.idea文件夹重新生成项目 安装SVN客户......

bithup ⋅ 今天 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部