问题标签 [x-xsrf-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 回答
2960 浏览

node.js - 无效的 CSRF 令牌错误 (express.js)

我正在使用node 6.5.0npm 3.10.3

invalid csrf token当我尝试将用户登录到站点时出现此错误。

{ ForbiddenError: invalid csrf token at csrf (/Users/Documents/web-new/node_modules/csurf/index.js:113:19)

在 redis 中存储会话的登录在没有 csurf 模块 ( https://github.com/expressjs/csurf ) 的情况下工作。使用 csurf 模块,会话 ID 存储在 redis 中,但我无法向客户端返回正确的响应以登录用户。我正在使用 Angular2 和 node/express。据我了解,Angular2 在使用 HTTP 服务时默认支持 CSRF/XSRF 和 CookieXSRFStrategy,所以我需要做的就是在 node/express 端配置一些东西。带有 webpack-dev-server 的 Angular2 应用程序正在运行,localhost:3000而 node/express 服务器正在运行localhost:3001。我支持 CORS。

我可以XSRF-TOKEN在 devtools 中看到带有名称的 cookie localhost:3000

您能否推荐我如何解决此错误?

//cors-middleware.js

//index.js

0 投票
1 回答
195 浏览

angularjs - 将 Angular XSRF 添加到 Slim 应用程序 - 这听起来不错吗?

我不久前使用 Slim 2 创建了一个应用程序,我正在尝试添加 Angular。到目前为止一切顺利,但我不能再使用我正在使用的 CSRF 保护,因为 Angular 正在处理我所有的发布请求。下面是我工作的中间件之前。

}

我知道 Angular 会自动查找名为 XSRF-TOKEN 的令牌并将其作为 X-XSRF-TOKEN 添加到标题中。如何修改下面的中间件以写入、读取和比较正确的值。

编辑:

再次查看此内容并检查纤薄文档后,我更改了行:

对此:

如果我是对的,这将为 $submittedToken 分配在标头中作为 X-XSRF-TOKEN 传递的值。它使用来自中间件“CSRF 令牌不匹配”的消息引发异常。这感觉像是进步。以下是相关的角度:

编辑

下面是 php 代码现在所在的位置。我认为这是有效的。当我在提交表单之前删除 cookie 或更改 $token 的值时,我收到了预期的 CSRF 错误。我有点担心当我有多个用户时会发生什么。我还没有测试过。根据这次修订,保护看起来是否健全?

0 投票
3 回答
3133 浏览

angular - 在 Angular 2 中获取 X-CSRF-TOKEN

我在我的 app.module 中使用像这样在 Angular 2 中使用 X-CSRF-TOKEN 的标准方式:

我正在使用“primeng”进行文件上传。我需要自己设置令牌,如下所示:

我需要 Angular2 为我生成的令牌。我不知道如何访问令牌。

0 投票
0 回答
540 浏览

php - PHP cURL - 由于 XSRF 令牌丢失或无效,请求执行失败

我正在尝试使用以下 PHP curl 请求登录用户并将会话保存到 cookie 文件中:

curl -c cookie-jar.txt -v --header "X-CSRF-Token: 不安全" --data "xs-username={{USER}}&xs-password={{PASS}}" " https:// .../login.func "

在 PHP 中有以下代码:

但是,执行此操作时出现错误:

由于 XSRF 令牌丢失或无效,请求执行失败。如何修改我的 curl 请求参数以添加它?

0 投票
1 回答
3004 浏览

csrf - 如何将 CSRF Token 设置为不同的上下文路径

我们基于 Angular 的 web 应用程序与在不同域和上下文路径上运行的企业门户集成。我正在使用基于 Spring Security 的 CSRF 令牌来验证传入的请求。该应用程序在本地完美运行,但是当我将其与门户网站集成时,所有帖子调用都失败 403,因为 Angular 无法读取 XSRF-Token 并将请求标头中的 X-XSRF-Token 设置为 API 调用。经过调查,我发现门户的上下文路径和我们的应用程序不同,因此 spring 将 XSRF-Token 的 Path、Expires 和 domain 设置为 Null。当spring创建它时,有什么方法可以将XSRF-Token设置为特定的cookie路径?

注意:我有一个替代解决方案来创建过滤器并从请求标头中读取 cookie,并在浏览器上放置一个具有我想要的路径的新 cookie。我正在寻找配置级别的解决方案。

0 投票
0 回答
629 浏览

angular - Angular2使用Http api跟踪文件上传进度

如何使用 angular2 HTTP API 跟踪上传进度?

我可以使用原生 javascript XHR 方法来做到这一点。但是 XHR 方法不提供 XSRF 保护,而 HTTP API 通过设置XSRF_TOKENcookie 提供 XSRF 保护。

我需要 XSRF 保护和文件上传进度。

请帮忙。

提前致谢。

0 投票
1 回答
377 浏览

php - 如何使用 HTTPOnly Cookie 保护 JWT 免受 XSRF 攻击?

我有我的 Ionic/angular 2 应用程序正在运行localhost:8000该应用程序最终将在浏览器平台上运行。该应用程序正在调用托管在我的本地计算机上的 RESTFull api ,我的主机名在https://adawy/api哪里,并在文件和 apache 虚拟主机中定义。服务器端是 Slim 3。adawyhosts

身份验证后的 API 返回一个 JWT,用于所有请求。

我的目标是保护令牌免受跨站点请求伪造和跨站点脚本的影响。将令牌保存在 javascript 变量或任何形式的本地存储中将使 JWT 可以从 javascript 访问。

我发现最好的方法是将 JWT 作为 HTTPOnly cookie 返回。因此它将无法从 javascript 访问,并且只能由浏览器发送,其中包含任何即将到来的adawy域请求。

我已成功将令牌作为 cookie 返回,但问题是 cookie 不会随任何下一个 XHR 请求一起发送。 在此处输入图像描述

另外,我在 Devtools 的 Cookies 部分中看不到 cookie。

在此处输入图像描述

我知道angular可以通过寻找XSRF-TOKENcookie来支持这种情况。它也不起作用,如您所见,我将 cookie 的名称设置为,XSRF-TOKEN但是,对于任何其他请求,都不会发送此 cookie。

我想知道如果 angular 可以访问这个 cookie,这将如何得到保护,任何其他脚本也可以?

这是下一个请求,没有发送 cookie。请忽略标题Authorization,因为我的角度代码直接设置它。

在此处输入图像描述

在我的角度应用程序中,我withCredentials: true在发出最后一个获取请求时设置了选项。

我用过的更新adawy.com,我仍然有同样的问题。

0 投票
2 回答
843 浏览

angular - Jhipster 4 angular 4 ng2-file-upload return error 403 access 由于 CSRF 而被禁止

ng2-file-upload 不会在上传请求旁边发送 CSRF 访问令牌,所以我得到 403 访问被禁止,我的上传请求立即被拒绝。

0 投票
1 回答
466 浏览

angularjs - 为什么 XSRF 令牌没有跨域发送?

这是 github 上 Angularjs 1.6.4 中文件 http.js 的片段:

为什么仅当请求用于同一来源时才包含 XSRF 令牌?如果 Restful 后端与前端位于不同的主机上,那么不应该使用 XSRF 吗?

0 投票
1 回答
1352 浏览

android - android 改造后注销请求给出错误 406 不可接受:用户未登录。...在邮递员 api 上工作正常

我正在使用retrofit2在App中注销,但每次它都会给出error406:不可接受:用户未登录。。我正在使用改造自定义标头身份验证。这是我的代码:

登出代码

公共无效注销()

{ Log.v("checkTokenbefore",Constants.token);

}

虽然以下是登录的代码,它工作正常:

//用于登录api调用的API/Http客户端

API接口类

Login APi 工作正常,响应代码为 200 OK 。使用注销 api(客户端 xsrf 令牌)上添加的动态自定义标头时遇到的主要问题

参考: https ://futurestud.io/tutorials/retrofit-add-custom-request-header api 格式:

用户认证/登录

目的:- 用户登录 Rest URL:- /api/v1/people/login 方法:- POST 标头:Accept-Language:application/json API_KEY:a5XSE8XCdsY6hAoCNojYBQ Content-Type:application/x-www-form-urlencoded X-CSRF-代币:

用户注销

目的:- 用户注销 Rest URL:- /api/v1/people/logout 方法:- POST 标头:Accept-Language:application/json API_KEY:a5XSE8XCdsY6hAoCNojYBQ Content-Type:application/x-www-form-urlencoded X-CSRF-令牌:正文中的参数:用户名:例如service@test.com 密码:例如123456