问题标签 [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 投票
2 回答
5708 浏览

php - 在 Angular 6 中添加 Xsrf-Token 的问题

通过 API 从表单提交中发布数据是成功的。

但是在将 X-CSRF-TOKEN 添加到标头并设置 withCredentials: true 结果数据后没有发布到名为的脚本insert.php

错误:

加载http://localhost/simple_api/insert.php失败:对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Origin”标头的值不能是通配符“ *' 当请求的凭证模式是 'include' 时。因此,不允许访问源“ http://localhost:4200 ”。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。

删除withCredentials: true结果数据已成功发布。但看不到 X-CSRF-TOKEN

app.module.ts

用户服务.ts

插入.php

在此处输入图像描述 安慰标头的值,未设置 Xsrf-Token。我应该如何设置 Xsrf-Token 值?


更新:

app.module.ts

0 投票
1 回答
434 浏览

angular - Angular 发布请求中缺少 _xsrf 参数

我想使用 Angular 6.x Web 应用程序将 tornado 作为后端服务器。如果我现在向本地托管的服务器发送 POST 请求,请求会到达,但 tornado 会回复 403 打印以下内容:

由于我不想关闭 xsfr cookie,我现在需要一个解决方案,如何使用 Angular 6 添加这个特定的参数HttpClient。Angulars 官方文档仅声明,为所有请求设置了一个令牌。

有一个现已弃用的版本,它通过将以下内容添加到定义的提供程序列表中来工作app.module.ts。然而,文档只是说看看新的HttpClient,这不是很有帮助。

后端 cookie 在登录时设置如下:

我绝对看到这根本不安全,但是在进一步的开发过程中会增加更多的安全性。这只是让所有东西正常工作的一个基本示例。

也许你们中的一个人已经解决了这个问题,并且有一个解决方案,或者至少暗示了在哪里寻找。

0 投票
1 回答
16839 浏览

axios - X-XSRF-TOKEN header with axios

Do I have to set anything to send X-XSRF-TOKEN header if I set a XSRF-TOKEN cookie server side?

https://github.com/axios/axios/blob/master/lib/defaults.js#L74 https://github.com/axios/axios/blob/master/dist/axios.js#L1072

It reads like I don't, but I'm not seeing one go out.

I'll add that I have set withCredentials to true, so I do meet the first check in the OR:

so if config.xsrfCookieName is a default.....

Update:

So, my OPTIONS preflight CORS is working, as is the POST now, but no X-XSRF-TOKEN being sent.

Thanks.

0 投票
0 回答
88 浏览

node.js - 如何使用 csurf 返回 404 而不是 403 的空路径参数处理 expressjs 休息路线?

我已经通过 Github Issues 向 csurf (Douglas Wilson) 的作者提出了这个问题,他建议在 stackoverflow 上创建一个新帖子。

原始问题在这里:https ://github.com/expressjs/csurf/issues/161

我的情况是:我在 express 中有一些 api(发布、放置、获取和删除)也带有路径参数。一些例子:删除 /api/users/2376213786213 POST /api/users 。(有身体)等等

我想使用 csurf,但我也想捕捉有人调用带有空路径参数的 api 并返回 404。简而言之,如果你调用 DELETE /api/users/(使用空 id 作为路径参数)我想要返回 404,否则如果您调用 DELETE /api/users/12121 我想处理 csrf 令牌,如果无效则返回 403。可能吗?如何?

我创建了一个中间件来处理 csrf,就像在官方 csurf 的示例中一样:

在这个中间件之后,我创建了另一个来处理 404,没什么特别的。

但是,此 api DELETE /api/users/(以空 id 作为路径参数)被第一个中间件捕获并返回 403,而不是 404。

我怎样才能解决这个问题?

谢谢你。

0 投票
0 回答
61 浏览

cookies - AspNetBoilerplate - 服务器端 JavaScript 代码注入

我们公司对运行 AspNetBoilerplate (Abp 2.0.2.0) 和 AspNet Zero 作为框架的软件进行了安全扫描。

扫描发现 cookie 中出现了 3 次服务器端 JavaScript 代码注入(RequestVerificationToken、XSRF-TOKEN、AspNet.ApplicationCookie)。

我想知道当它在框架中时如何进一步调查和补救?

是否有其他人进行过安全扫描并遇到过这些问题,如果有,它们是误报吗?

0 投票
0 回答
1035 浏览

node.js - X-XSRF-Token 标头未在 angular6 中设置

我在 Angular 6 和 nodeJS Web 应用程序中遇到了一些奇怪的问题。

我必须实现 csrf 保护,所以我在节点 js 中实现了 csurf,我的节点 js 代码如下所示,

我的 Angular js 代码如下所示,调用 api post 请求,

现在的问题是它没有以任何方式设置标题,甚至没有添加任何其他标题我也在导入的代码下面添加

但没有任何效果,它没有添加 X-XSRF-TOKEN 标头,我还实现了如下拦截器,

我还获得了由 XSRF-TOKEN 中的节点 js 代码设置的令牌值,但标头未设置。

任何人都可以知道为什么标题没有设置为角度 6?注意:我在 localhost 上工作,所以 nodeJS 在http://localhost:3000上运行,而 angular 在http://localhost:4200上运行

0 投票
1 回答
1334 浏览

angular - XSRF 防伪:Asp.Net Core 2 WebApi(不是 MVC)+ Angular 的单独服务器是可能的吗?

我在单独的机器上使用没有静态内容的 Asp.Net Core Webapi 2 作为后端服务器 + nginx 来服务 Angular 7 应用程序。问题来了:尝试使用 xrsf 防伪保护是否有意义,例如 services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN"); 在前后分离机器的情况下?据我了解,我必须管理这两个服务器之间的某种状态,以从 Nginx 提供相应的 cookie,后端服务器将接受该 cookie。

0 投票
2 回答
1032 浏览

angular - Laravel 未在实时服务器上设置 XSRF-Token cookie

我使用 Laravel 5.7.16 和 Angular2 创建了一个应用程序,并且在我的本地主机中一切正常。

但是,在实时服务器上,我在提交发布请求时收到“419 错误”。经过一些研究,我得出结论,这可能是由于 XSRF-TOKEN 的问题。然后,当比较我的本地主机和实时服务器上发生的事情时,我注意到实时服务器没有在初始请求上设置 XSRF-TOKEN cookie。

我没有在我的 Angular2 HTTP 发布请求上明确设置 XSRF-TOKEN,但据我了解,只要 XSRF-TOKEN cookie 最初由服务器端应用程序设置,Angular2 就会自动执行此操作。

有人对我如何解决这个问题有任何想法吗?

编辑:我刚刚尝试将我的应用程序发布路由之一添加到VerifyCsrfToken 的$except 数组中,并且有效。但是,这更多的是一种解决方法,而不是实际的解决方案。有趣的是,在执行了“允许”的路由之后,XSRF-TOKEN 被返回,其他所有路由都正常工作。我认为这强化了这样一种想法,即问题在于 XSRF-TOKEN 没有在初始应用程序加载中返回。为什么会这样?

谢谢你。

0 投票
2 回答
6206 浏览

javascript - 使用 windows.location.href 时的跨站点脚本

我正在使用 Windows.location.href=URl 从 java 脚本导航到 MVC 控制器方法。我想在重定向时避免任何 XSS 攻击。我应该怎么办

0 投票
1 回答
243 浏览

javascript - 为访问者清除 X-CSRF-TOKEN 以修复 XMLHttpRequest 被 CORS 策略阻止

我刚刚将网站从一台主机切换到另一台主机,由于某种原因,我们在尝试访问第三方 API 时遇到以下多个错误

Access to XMLHttpRequest at 'https://externalwebsite.com/api/' from origin 'https://www.mainwebsite.com.au' has been blocked by CORS policy: Request header field x-xsrf-token is not allowed by Access-Control-Allow-Headers in preflight response.

.htaccess 文件具有允许这些连接的 CORS 策略:

我可以看到旧主机设置了以下 cookie,当我在系统上删除它们时,它允许网站正常工作:

XSRF-TOKEN 1551054855|ZxDIR_16hNnw .www.mainwebsite.com

hs 1333923782 .www.mainwebsite.com

svSession 253f275579e7747b6495ca6ff45ba024da3bd3b36906f5ac14b709de48792403faf1d3bbff2205d92d2e9a8de90d4b101e60994d53964e647acf411e4f798bcd4c6094311de4bdfbf81f1c6cdfaa3e9de1f5fc736f232b0c584f30f1f7d232d9 .www.mainwebsite.com

我如何包含一些 PHP 或 Javascript 来为加载网站的任何人清除这些 cookie,以便为过去访问过该网站的人正常加载?