文档章节

关于RESTful的csrf攻击

Isronik
 Isronik
发布于 2015/12/16 17:20
字数 385
阅读 190
收藏 1

首先说明csrf保护的三种方式(http://insidethecpu.com/2013/09/23/encrypted-token-pattern/):

  1. 同步的token,即是需要在服务器保存session的方式。这个的缺点是需要占用内存,同时如果有负载平衡的话,session的保存会有问题。

  2. Double submit cookies。这个主要问题是cookies不能标识为httponly。然后如果字域名被xss攻击了,则会使得上级域名出问题。

  3. Encrypted Token Pattern.这个参考:

       在使用jsp,jinja这样的模板的网站中,要解决csrf的问题一般都比较简单。直接在服务端生成到返回的面页中,当用户提交的时候,再做比较就可以解决问题了。

       现在以API为中心的应用开始流行了。也是自己在做这个的时候才遇到 的这个问题。没有状态的API服务器。如何处理这样的csrf攻击?

       在GOOGLE中看到的是double submit cookies。就是在request的请求参数中和cookies中加入一样的cookies,到了后台进行验证是否一样即可。此文中对此有了相关的说明。

       有几个要点:

  1. 每个请求最好都要修改cookies

  2. (zero the anti-CSRF cookie directly after each backend cal)每次请求后都要清空cookies。应该是这个意思 吧。。


记录几个重要的网址:

使用简单的cookie来完成,但是cookie只写在header里

© 著作权归作者所有

共有 人打赏支持
Isronik
粉丝 1
博文 15
码字总数 3673
作品 0
高级程序员
Web安全系列——CSRF攻击

CSRF简介 CSRF全称为Cross Site Request Forgery,翻译成中文是跨站点请求伪造,是攻击者通过伪装受信任的用户,来想网站发起请求的的一种恶意攻击。听起来很像XSS攻击,但是又与XSS攻击有着...

邱振源的博客
2017/11/18
0
0
MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客

原文:MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客 (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site requ......

杰克.陈
2017/11/28
0
0
CSRF/XSRF 跨站请求伪造

CSRF(Cross Site Request Forgery, 跨站域请求伪造)也称 XSRF, 是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击...

给你添麻烦了
01/13
0
0
Cookie-Form型CSRF防御机制的不足与反思

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

离别歌
2016/09/26
0
0
关于csrf,什么是csrf,怎么防范它?

先说下CSRF的定义 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用...

鲍康霖
08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Confluence 6 使用 Fail2Ban 来限制登录尝试

什么是 Fail2Ban? 我们需要在我们网站中防止密码的暴利破解。Fail2Ban 是一个 Python 的应用来查看日志文件,使用的是正则表达式,同时还可以与Shorewall (或者 iptables)直接工作来来启用...

honeymose
8分钟前
0
0
日期和时间API - 读《Java 8实战》

日期与时间 LocalDate 创建一个LocalDate对象并读取其值 // 根据年月日创建日期LocalDate date1 = LocalDate.of(2014, 3, 18);// 读取System.out.println(date1.getYear()); // 2014Sys...

yysue
9分钟前
0
0
8月15日任务

8月15日任务 Memcached命令行 • telnet 127.0.0.1 11211 • set key2 0 30 2 ab STORED get key2 VALUE key2 0 2 ab END 实例: [root@localhost 02]# telnet 127.0.0.1 11211-bash: te......

寰宇01
21分钟前
0
0
LNMP架构(Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间)

Nginx访问日志 1.打开配置文件,搜索log_format vim /usr/local/nginx/conf/nginx.conf 2.访问日志常用变量含义 $remote_addr : 客户端IP(公网IP) $http_x_forwarded_for : 代理服务器的IP ...

蛋黄_Yolks
21分钟前
0
0
lombok 不用再写pojo的getset

java实体类不写get/set方法 1、下载地址https://projectlombok.org/download Myeclipse、eclipse安装lombok Lombok是一种Java实用工具,可以帮助开发人员消除Java的冗长,具体看lombok的官网...

木之下
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部