文档章节

关于RESTful的csrf攻击

Isronik
 Isronik
发布于 2015/12/16 17:20
字数 385
阅读 214
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

Apache Spark 2.3 重要特性介绍

本文翻译自:https://databricks.com/blog/2018/02/28/introducing-apache-spark-2-3.html 为了继续实现 Spark 更快,更轻松,更智能的目标,Spark 2.3 在许多模块都做了重要的更新,比如 St...

hblt-j
17分钟前
1
0
Git基本操作

Git基本操作 git add . git commit git commit -m "updata" git log查看日志 git checkout xxx 切换分支到xxx 常用命令 版本库管理 创建版本库 # 初始化版本库mkdir learngit && cd learng...

lslaiwy
20分钟前
1
0
ubuntu 彻底删除 mysql 然后重装 mysql

ubuntu 彻底删除 mysql 然后重装 mysql 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-......

关上越
23分钟前
1
0
Fabric.js高级点的教程3--添加遮罩和裁剪的方法

写这篇文章的时候我就要说一下了,这个遮罩和裁剪耗费了我真的是九牛二虎之力 裁剪的插件很多,无论你用原生JS,JQuery, Vue还是React.总能找到一款裁剪插件。今天我要说的是自己写一个截图功...

xmqywx
26分钟前
1
0
springboot 初始化不设置数据源 由接口动态设置数据源(传入ip 端口 数据库名称 账号 密码)

程序无需重启可以加个过滤器支持未设置数据库无法调用将配置存到property文件,也可存到缓存设置时需要一个工具类判断传入的数据库是否可连接等import org.apache.commo...

林伟琨
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部