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

angular - 如何在 Angular 中访问 XSRF cookie 值?

在过去的 7 个小时里,我一直在为此工作,但似乎无法取得任何进展。我正在尝试让我的 XSRF-TOKEN 可用于前端(Angular 6)。但是,它似乎永远不可用。当我在网络选项卡中执行分析并在“Cookie”下查看时,它似乎就在它所有的光辉中。但是,如果我使用 Angular 的 CookieService 并尝试检索它,则不会返回任何内容。

要记住的事情:

  1. 在我的本地机器上运行时,我能够取出 XSRF-TOKEN 并将其放置在未来的标头请求中。
  2. 当两个前端和后端(Spring-boot)托管在两个不同的主机上但在同一个域下时,就会出现此问题。例如:前端可以是frontend.home.com;后端可以是 backend.home.com。
  3. HttpOnly 设置为 False。
  4. Angular 的 withCredentials 属性也设置为 true。

对于如何处理这个看似微不足道但令人沮丧的问题,我真的很感激。

谢谢。

后端:

前端:

此外,当我查看开发人员工具时,我看到了三个不同的领域。

  1. 主页
  2. backend.home.com(XSRF cookie 只能在这里找到,其他地方无法访问)
  3. 前端.home.com
0 投票
1 回答
201 浏览

angular - CSRF 过滤器顺序和随机令牌生成

我在 XSRF 令牌生成和更新必要的 cookie 值方面遇到了一些奇怪的行为。当我加载我网站的登录页面时——一个 Angular 前端和一个 Spring-boot 后端——生成了一个 XSRF 令牌。不,理想,但如果这是正常的和预期的,那么我可以接受。转到登录页面时生成的唯一请求是“GET”请求。

在我登录到应用程序后,它会验证第一个 XSRF-TOKEN 并验证其有效性并继续登录。但是,在 Web 服务上更改 XSRF-TOKEN 后会立即生成一个新的 CSRF 令牌。因此,前端和后端现在不同步了。我不确定如何在成功登录后更新 XSRF-TOKEN 或防止其被更改,因为这似乎没有任何好处……至少从我所读到的内容来看。

网络安全

csrf 部分是分开的,希望只有在使用该 URI 发送发布请求时才会生成 csrf 令牌。情况似乎并非如此。无论发送到后端的 URI 是什么,似乎都会调用 CSRF Header 过滤器。

CSRF Header Filter -- 必需,因为必须更新 cookie 的域以允许前端和后端访问 XSRF-TOKEN。

我相信我的过滤器的组织方式存在问题,但我已经尝试了各种方法,从将不同的 http.httpBasic() 部分组合到一个组中,到将 antIgnores 用于 csrf(),再到不使用 GET 请求处理 CSRF 令牌。任何指导或建议将不胜感激!

如果您还有其他需要,请告诉我,我会尽力提供。

谢谢!

0 投票
3 回答
3199 浏览

html - 将 POST 发送到自定义休息端点时 XSRF 检查失败

我有一个显示表单对话框的 ScriptRunner 片段。这是代码:

我需要此表单将数据发送到另一个自定义休息端点(当我从邮递员调用它时它工作正常),但是当我提交此对话框时,它显示“XSRF 检查失败”。

有没有办法让它工作?

最好的问候,埃洛伊。

0 投票
2 回答
4577 浏览

jwt - JWT - 将刷新令牌保存为 cookie 危险吗?

我已经阅读了几天,我有两个问题

1)如果我将访问令牌存储在本地存储中,并将刷新令牌存储在 HttpOnly cookie 中,我是否需要担心 XSRF?如果攻击者作弊以发出请求,则响应由好用户接收。它请求新的访问令牌和刷新令牌还不错,攻击者无法窃取响应的内容。这是真实的 ?

如果攻击是 XSS,它可以进行相同的攻击,就好像它也将访问令牌存储为 HttpOnly cookie 一样......这很糟糕。但是,如果您将刷新令牌存储在本地存储中,那将非常糟糕,您可以更新访问令牌。

使用这种方法,我不应该担心 XSRF,但是如果我将 2 个令牌存储在 HttpOnly cookie 中,我必须担心 XSRF(关于避免 XSRF 的令牌)和 XSS。如果他们成功攻击,他们只能在访问令牌的生命周期内作恶。

2)如果我的授权服务器是一个微服务并且我通过内部IP(10.xxx)访问我必须继续担心XSS而不是XSRF,这是真的吗?

0 投票
0 回答
81 浏览

ruby-on-rails - Rails/Angular CSRF 令牌

我有一个带有 Angular 前端的 Rails API 后端。当然,在开发过程中一切都很好。

该应用程序使用 nginx+passenger 部署,编译后的 Angular 内容(dist目录)简单地放在 Railspublic目录中。作为 rails server ,我反复收到 422 错误Can't verify CSRF token

我已经安装了angular_rails_csrf gem,还将以下行添加到application.rb

但它仍然不起作用。显然,在应用程序控制器中设置时它工作得很好,skip_before_action :verify_authenticity_token但这只是愚蠢的。

我尝试了各种解决方案,但都没有帮助。有人知道如何克服这个问题吗?


系统信息:

  • 红宝石版本 2.6.5
  • 导轨版本 6.0.2.1
  • 角版本 9.1.0
0 投票
1 回答
45 浏览

angular - CSRF 实施不适用于 OAM

我们的应用程序是一个带角度的弹簧靴。由于安全原因,我们需要实现 CSRF。我们已经完成了实现,但仍然被 403 禁止。我们确实使用 OAM 登录认证。尽管将 HTTPonly 设置为 false,但在浏览器中我们看到它不是 false。我们可以很好地看到令牌。

这是角度前端中的代码。

我们已经在后端实现了以下代码: 配置类:

和过滤器代码:

0 投票
1 回答
421 浏览

ruby-on-rails - Ruby:从 UPS API 获取跟踪信息(无需登录)

我构建了一个 ruby​​ on rails Web 应用程序,它解析来自“https://www.ups.com/track/api/Track/GetStatus”的 UPS 货物的跟踪信息。从昨天开始,我开始收到 401 错误,并且我不再能够检索货物的跟踪信息。

我试图在我的请求中添加一个“X-XSRF-Token”标头。但我仍然收到相同的“#<Net::HTTPUnauthorized 401 Unauthorized readbody=true>”响应,其正文等于 {"unauthorized":401}。有什么我做错了吗?

这是我尝试实现的代码:

编辑(解决方案):

谢谢塔德曼的回答。一种解决方案确实是随请求一起发送 cookie。

0 投票
1 回答
178 浏览

javascript - http_only = false 时不在 document.cookie 列表中的 cookie

我有一个 Nuxt.js 前端应用程序,它执行身份验证请求。后端有一个 Laravel/Sanctum 应用程序。它使用内置的基于 cookie 的会话身份验证。身份验证请求失败,因为/login 请求中提供 X-XSRF-TOKEN HTTP 标头。任何人都可以帮助澄清为什么标题不是从后端提供的cookie创建的吗?

注意:在我的笔记本电脑上一切正常。它仅在部署到测试环境(GCP VM 实例 + Gitlab 页面)时才会失败。

Nuxt.js 中的验证码:

我可以看到 XSRF-TOKEN cookie 是由服务器返回的

我还看到 /login POST 请求中提供了 XSRF-TOKEN cookie,而没有创建 X-XSRF-TOKEN HTTP 标头

Cookie 详细信息

我还调试了 axios 源代码,看到它尝试创建 X-XSRF-TOKEN 标头,从 document.cookie 中获取 XSRF 令牌。但 document.cookie 在那一刻不包含令牌 cookie。为什么?

0 投票
1 回答
214 浏览

node.js - 平均堆栈中的 CSRF 令牌

我无法将 Express 的 CSRF 令牌与 Angular 的 XSRF 令牌集成。我正在使用给定的教程 https://jasonwatmore.com/post/2020/09/08/nodejs-mysql-boilerplate-api-with-email-sign-up-verification-authentication-forgot-password

我知道代码风格粗糙,但我需要解决这个问题。

这是我的快递代码

在 Angular 中,我在 module.ts 中添加了 XSRF TOKEN

请帮我解决问题

0 投票
1 回答
241 浏览

security - Tinymce 注入安全性

我有公共编辑器,用户可以在其中共享笔记,TinyMCE但我想阻止他们在此编辑器中插入JavaScriptSQL(任何类型的脚本)。

所以我的问题是:如何?

Here is my editor code

单一的文本