首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cookie的JWT-auth系统的CSRF令牌

使用cookie的JWT-auth系统的CSRF令牌
EN

Security用户
提问于 2016-12-28 22:47:14
回答 1查看 1.3K关注 0票数 3

我想我已经安排好了,但如果我错了,我很想听听。我们有一组Python+Angular.js应用程序,它们使用JWT令牌进行身份验证,其中令牌使用秘密密钥进行加密,有效负载标识用户,令牌存储在cookie集中,仅为HTTP,并且是安全的。由于各种原因,这对我们来说很好,我们可以跨多个API后端使用一个Python中间件应用程序,我们的令牌会在每个请求中自动发送到域,并且我们可以完全绕过使用会话。我已经在这里和其他地方检查过这个部分,我相信它是好的。(我的问题是:http_只适用于带有JWT令牌的cookie )

我的新问题是如何处理CSRF令牌,因为我们根本不使用会话。我的想法如下:

  • 在上面描述的cookie中,auth是在jwt令牌上处理的,我们将其称为accept_token_cookie。JS无法读取它,它只是HTTP。有用户id。
  • 第二个cookie与我们的CSRF令牌一起发送,它不是HTTP_ONLY,因此角可以读取它(让我们称之为csrf_cookie)。
  • csrf_cookies有效载荷是对身份有效载荷(或其一部分,如用户电子邮件)的加密,但使用第二个秘密密钥进行加密。
  • 当发出XHR请求时,我的JS将查看csrf_cookie值,并将其添加到报头中
  • 在入口时,我们的服务器对cookie进行解码,并获取自定义标头中角发送的令牌。如果这些不完全匹配,我们就知道这个请求是错误的,因为请求的javascript无法读取我们的csrf_cookie。然而,csrf_cookie仍然没有被用来生成身份,这正是我们所希望的,这样accept_token cookie对客户端来说就完全不透明了。

从我所有的阅读来看,上面的话听起来是正确的。如果我错了,请告诉我原因,谢谢。

EN

回答 1

Security用户

回答已采纳

发布于 2017-01-07 18:03:18

当发出XHR请求时,我的JS将查看csrf_cookie值,并将其添加到报头中

如果您没有使用CORS,并且正在检查此头服务器端,那么仅这一点就足以减轻CSRF的影响。

原因是没有CORS就不能跨域发送自定义标头。

设置和检查实际的令牌值更有帮助,因为无法利用插件(例如Flash)中可能帮助绕过自定义标头限制的任何漏洞来绕过您的保护。

有关使用自定义头作为CSRF缓解措施,请参见此处.

您的方法似乎是加密令牌模式加密令牌模式的一个变体。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/146666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档