问题标签 [csrf-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
259 浏览

ruby-on-rails - 长时间空闲后,Rails 无法验证 CSRF 令牌的真实性

我有一个 Rails 应用程序,我正在使用带有timeoutable. 如果用户的计算机闲置一段时间(我认为大约一个小时),当他们尝试再次登录时,我会得到以下服务器日志:

CSRF 令牌通常工作正常,问题仅在一个小时左右后出现。这具有在用户登录后立即将其注销的效果。以下是相关代码:

我正在使用可超时的设计 gem。这也是一个单页应用程序,它使用 Ajax 请求来访问 API,以及用户会话的会话 cookie。但我实际上并没有看到这有什么关系,因为任何网页都需要能够以某种方式处理过期的 CSRF 令牌,并且无论出于何种原因我都没有找到解决方案。

还可能值得一提的是,将时间更改timeout_in为非常短(例如 30 秒)不会重现此错误,将计算机的睡眠计时器更改为 1 分钟也不会。考虑到到期的是 CSRF 令牌,而不是用户会话,这是有道理的。

红宝石 v1.9.3

导轨 v3.2.8

设计 v3.2.4

独角兽 v4.8.2

编辑:我发现了一些可能相关的东西

0 投票
0 回答
1196 浏览

reactjs - 使用 React 获取 csrftoken cookie

我正在使用React制作我的第一个应用程序,与Django Rest Framework后端应用程序进行交互。他们都在他们的本地服务器上运行。

我发现来自React前端的请求(通过Axios发送)需要一个csrftoken cookie。我阅读并关注了Django 文档,但我总是得到一个undefined csrftoken cookie

这是请求的代码:

我打印以控制台的结果Cookies.get('csrftoken'),我可以看到它总是undefined

我不知道我缺少什么才能获得csrftoken cookie

0 投票
2 回答
225 浏览

php - CSRF Token保护的意义是什么?

我已经阅读了很多关于此的内容,但我仍然不明白。假设我有一个域,其表单仅供经过身份验证的用户对某种内容发表评论:

my_form.php

post_comment.php

如果“csrf_token”令牌值未发送或无效,post_comment.php 将拒绝任何请求。因此,我们正在阻止攻击者使用我们的 post_comment.php。

但是如何防止攻击者获取 /my_form.php,从表单中读取 csrf_token 值并使用它 POST 到 post_comment.php?我错过了什么?

0 投票
0 回答
214 浏览

angular - 无法在使用 hapi 开发的 api 和使用 angular 5 开发的前端的应用程序中实现 csrf 保护的 crumb

当我访问受 crumb 令牌保护的 hapi 端点时,我收到 403 禁止错误。我在我的 api 中为 CSRF使用了 npm 的 crumb包。我的 Api 是使用 hapi 开发的,前端是 angular 5。

我在我的 Hapi api 端点的“set-cookie”响应标头中获得了 crumb 令牌。每个端点的 Crumb 令牌都不同。

我应该如何验证通过我的角度应用程序发送到我的 hapi 端点的每个请求的 crumb 令牌?

我尝试了以下方法

  1. 我在我的 Angular 应用程序中添加了一个拦截器,并尝试使用“HttpXsrfTokenExtractor”的 getToken 方法提取令牌并将其设置在“X-XSRF-Token”标头中。它抛出异常“getToken”不是一个函数

  2. 我添加了一个端点 "getCrumb" ,这个端点正在返回 crumb 令牌。我将这个 crumb 令牌传递给“X-XSRF-Token”标头中的登录端点。但这给了我登录 api 的 403 禁止错误。

0 投票
0 回答
297 浏览

spring-boot - Spring Boot 安全性在响应标头 cookie 中添加 2 个 XSRF-TOKEN

我正在使用 Spring Boot 2.2 安全性,以下是我的 Java 配置:

我在响应标头中看到 XSRF-TOKEN 的 2 个 set-cookie,如下所示。不知道为什么。

设置cookie:XSRF-TOKEN=;最大年龄=0;到期时间=周四,1970 年 1 月 1 日 00:00:10 GMT;路径=/隐藏

设置cookie:XSRF-TOKEN = 5564cfc1-884d-4b89-9bb9-11a92f42bcc7;路径=/隐藏

我在这里想念什么?Spring 安全性相对较新。

0 投票
0 回答
24 浏览

api - csrfToken() 不适用于 html 页面?

我有节点 js 支持服务器,前端是作为 spa 服务器运行的简单 html 文件。

但它不起作用。

0 投票
0 回答
18 浏览

api - 我们如何保护 API?

我已经在 python 和 nOdejs 中使用了 csrf 令牌,它们可以工作,但我们有一个技巧可以摆脱它,因为在检查中,即使您已将该字段设置为隐藏,那么任何人都可以看到它。也许我做错了。使其安全的任何最佳方法,以便没有攻击者可以攻击我们的 api。

0 投票
1 回答
53 浏览

html - 页面级别的节点 js 中的 Csrf 修复

我查看了 node js Git hub 示例中的 csrf 实现,想知道这是针对应用程序级别的。如果我想在应用程序的一两个页面上应用它怎么办。我在网上没有找到任何示例。我知道在 asp.net 中你可以做到,但不确定如何在 Node JS 中实现同样的效果。

非常感谢指导解决方案的任何帮助。

0 投票
1 回答
1370 浏览

angularjs - AngularJS:在 401 响应中刷新过期的 JWT 令牌

我在基于 401(未经授权)标头响应刷新过期的 JWT 令牌时遇到问题。我想要的是当用户获得 401(标头)响应时,应该通过调用特定服务(api)生成一个新的(刷新)JWT。

我在标头响应中发送 XSRF-TOKEN 和 access_token (JWT),这些工作正常。我什至还可以通过手动调用 api 来获取刷新(过期)令牌。但不能让它与 401(标题)响应一起工作。

我有一个工厂来处理这个承诺并拦截标头请求。我的(工厂)代码看起来像这样。

基于上面的代码,当令牌过期(401 响应)时,我在控制台中收到以下错误。

控制台错误

对此的任何帮助都将是非常可观的。谢谢。

0 投票
1 回答
586 浏览

jestjs - 发送 csrfToken 和 set-cookie 但仍然 403 invalid csrf token

我正在尝试使用 jest(测试环境:节点)通过集成测试,以获得使用 csurf 进行 csrf 保护的登录表单(使用 cookie 选项)。

我已经从登录表单和 set-cookie 标头中提取了 csrfToken,但测试仍然失败,并出现 403 - 无效 csrf 令牌。

我看不出问题出在哪里,希望能朝着正确的方向前进。

测试文件: