问题标签 [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.
angular - 如何在 Angular 中访问 XSRF cookie 值?
在过去的 7 个小时里,我一直在为此工作,但似乎无法取得任何进展。我正在尝试让我的 XSRF-TOKEN 可用于前端(Angular 6)。但是,它似乎永远不可用。当我在网络选项卡中执行分析并在“Cookie”下查看时,它似乎就在它所有的光辉中。但是,如果我使用 Angular 的 CookieService 并尝试检索它,则不会返回任何内容。
要记住的事情:
- 在我的本地机器上运行时,我能够取出 XSRF-TOKEN 并将其放置在未来的标头请求中。
- 当两个前端和后端(Spring-boot)托管在两个不同的主机上但在同一个域下时,就会出现此问题。例如:前端可以是frontend.home.com;后端可以是 backend.home.com。
- HttpOnly 设置为 False。
- Angular 的 withCredentials 属性也设置为 true。
对于如何处理这个看似微不足道但令人沮丧的问题,我真的很感激。
谢谢。
后端:
前端:
此外,当我查看开发人员工具时,我看到了三个不同的领域。
- 主页
- backend.home.com(XSRF cookie 只能在这里找到,其他地方无法访问)
- 前端.home.com
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 令牌。任何指导或建议将不胜感激!
如果您还有其他需要,请告诉我,我会尽力提供。
谢谢!
html - 将 POST 发送到自定义休息端点时 XSRF 检查失败
我有一个显示表单对话框的 ScriptRunner 片段。这是代码:
我需要此表单将数据发送到另一个自定义休息端点(当我从邮递员调用它时它工作正常),但是当我提交此对话框时,它显示“XSRF 检查失败”。
有没有办法让它工作?
最好的问候,埃洛伊。
jwt - JWT - 将刷新令牌保存为 cookie 危险吗?
我已经阅读了几天,我有两个问题
1)如果我将访问令牌存储在本地存储中,并将刷新令牌存储在 HttpOnly cookie 中,我是否需要担心 XSRF?如果攻击者作弊以发出请求,则响应由好用户接收。它请求新的访问令牌和刷新令牌还不错,攻击者无法窃取响应的内容。这是真实的 ?
如果攻击是 XSS,它可以进行相同的攻击,就好像它也将访问令牌存储为 HttpOnly cookie 一样......这很糟糕。但是,如果您将刷新令牌存储在本地存储中,那将非常糟糕,您可以更新访问令牌。
使用这种方法,我不应该担心 XSRF,但是如果我将 2 个令牌存储在 HttpOnly cookie 中,我必须担心 XSRF(关于避免 XSRF 的令牌)和 XSS。如果他们成功攻击,他们只能在访问令牌的生命周期内作恶。
2)如果我的授权服务器是一个微服务并且我通过内部IP(10.xxx)访问我必须继续担心XSS而不是XSRF,这是真的吗?
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
angular - CSRF 实施不适用于 OAM
我们的应用程序是一个带角度的弹簧靴。由于安全原因,我们需要实现 CSRF。我们已经完成了实现,但仍然被 403 禁止。我们确实使用 OAM 登录认证。尽管将 HTTPonly 设置为 false,但在浏览器中我们看到它不是 false。我们可以很好地看到令牌。
这是角度前端中的代码。
我们已经在后端实现了以下代码: 配置类:
和过滤器代码:
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。
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 标头
我还调试了 axios 源代码,看到它尝试创建 X-XSRF-TOKEN 标头,从 document.cookie 中获取 XSRF 令牌。但 document.cookie 在那一刻不包含令牌 cookie。为什么?
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
请帮我解决问题