文档章节

你已经不再需要 CSRF 了(跨站点请求伪造)

红薯
 红薯
发布于 09/08 09:29
字数 856
阅读 94
收藏 1

斯科特·赫尔姆

本文作者:Scott Helme,安全研究员,国际演讲者和本博客的作者。也是 securityheaders.com 和 report-uri.com 的创始人。

英文原文:https://scotthelme.co.uk/csrf-is-really-dead/

不久前,我写了一篇“CSRF 死了”的文章。这篇文字主要介绍 SameSite cookie 这一个强大而简单的功能,可以保护您的网站免受 CSRF 攻击。不过尽管 SameSite cookie 很强大,并且它让你不再需要 CSRF,但前提是必须在你的网站上启用它,这就是问题所在。现在,我们来解决这个问题。

SameSite Cookies

要了解CSRF的问题以及SameSite Cookies提供的解决方案,您应该首先阅读我的原始博客 Cross-Site Request Forgery已经死了!。如果您想了解有关cookie保护的更多详细信息,您还应阅读Tough Cookies。您应该采取强有力的保护措施来保护您的用户/访问者,所以必须开启 SameSite cookie,不过它是可选特性。在实际的环境中,您可以通过在 cookie 中添加SameSite=Lax来启用S​​ameSite ,就像SecureHttpOnly标记一样。

如下所示:

Set-Cookie: __Host-session=123; path=/; Secure; HttpOnly; SameSite=Lax

可实际情况并没有多少网站将SameSite=Lax标志添加到他们的cookie中。

默认启用 SameSite

当 SameSite 首次问世时,没有人想让它成为默认设置。因为它会破坏原有事物,改变预期(遗留)功能,这会导致开发人员对此有所顾虑。所以 SameSite 设置是一个可选项,但这种情况正在发生变化。

上图中的 Mike 在 Chrome 上工作。我高兴看到他提到的 SameSite 将作为 cookie 的默认设置启用。你可以检查 Chrome 平台的 默认设置SameSite = Lax,并且你将可以在 Chrome 76(已经发布)以及后面的版本看到这一点,并且将很快登陆Chrome 78(很快)。默认情况下,网站运营商无需为SameSite提供强大的保护,但他们可能希望现在使用了 Chrome 这一测试特性后,一切仍然按预期工作:chrome://flags/#same-site-by-default-cookie

更安全

如上面的链接所述,如果需要或想要,网站可以选择退出SameSite保护。为此,网站可以设置SameSite=None其Cookie,Chrome会尊重设置,但有一项要求。cookie 必须设置Secure标志!您可以跟踪 Chrome 的 Reject insecure SameSite=None cookies 状态,但它可以在 Chrome 76(现在)中显示,并且看起来将在今年晚些时候登陆Chrome 80。这里面的逻辑是有道理的,其目的是保护跨网站请求中发送的cookie,这些cookie可以在网络上跟踪和查看,而不是通过HTTP等不安全的通道发送。同样,网站运营商可以使用该标志测试是否会产生任何影响:chrome://flags/#cookies-without-same-site-must-be-secure

一个更好的方法

我喜欢并同意这样的安全功能成为默认功能的立场。如果网站经营者不希望这样,然后他们可以轻松地选择关闭,但这种方法会让更多的网站在避免更多潜在的安全问题。

© 著作权归作者所有

红薯

红薯

粉丝 21762
博文 146
码字总数 64283
作品 8
深圳
产品经理
私信 提问
.NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理

通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性。 ASP.NET Core 中包含管理身份验证、授权、数据保护、SSL 强制、应用机密、请求防伪保护及 CORS 管理等等安全方面的处理。 通过这...

依乐祝
01/06
0
0
10大最重要的Web安全风险之五:A5-伪造跨站请求

10大最重要的Web安全风险之五:A5-伪造跨站请求(CSRF) OWASP TOP10 A1-注入 A2-跨站脚本(XSS) A3-错误的认证和会话管理 A4-不正确的直接对象引用 A5-伪造跨站请求(CSRF) -- Cross-Sit...

六六木木
2013/07/03
1K
3
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
Web安全的三个攻防姿势

关于前端Web安全的问题,是一个老生常谈的问题,作为离用户最近的一层,我们大前端确实需要把手伸的更远一点。 我们最常见的Web安全攻击有以下几种 XSS 跨站脚本攻击 CSRF 跨站请求伪造 clic...

木羽zwwill
2017/10/18
0
0
CSRF/XSRF 跨站请求伪造

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

给你添麻烦了
2018/01/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
27分钟前
5
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
4
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
6
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
6
1
正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置

正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置 今天要用正则表达式实现匹配一个词出现一次或者不出现的情况,但是又不仅仅是这么简单的需求。先详细说下我这种情况吧,也许有...

Airship
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部