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

laravel - 使用 Laravel API 和 Vue.js 在 SPA 中注销后第二次登录时出现 419 错误

我在上次注销后尝试登录时收到页面过期错误(er.419)。

我正在使用 Laravel 和 Vue.js 制作 SPA 的身份验证页面。它在第一次登录时运行良好,但在注销后显示提交第二次登录时出错。

我认为问题是先前发送的 CSRF 并且(可能)在注销后过期。

我的工作流程是这样的:

登录组件具有作为 POST 方法发送到 Laravel API 的隐藏表单,该表单具有来自 Laravel 模板创建应用程序时设置的 HTML META TAG 的 csfr-token 值:

元名称="登录状态" 内容="{{ Auth::check() }}"

注销是通过 vue 组件中的 fetch 请求完成的。所以没有刷新。

感谢您的任何建议!

0 投票
0 回答
204 浏览

ruby-on-rails - 多个选项卡的会话并发问题导致无法验证 CSRF 令牌真实性

我有一个在 Rails 5.1.5 上运行的电子商务应用程序redis-session-store,但是当我同时打开多个选项卡时,会话似乎存在并发问题。

以下是有关如何重现该问题的示例:

  • 想象一下,您要么从未访问过该应用程序,要么只是清除了 cookie;
  • 然后您在其他选项卡上打开 2 个链接非常快,因此第二个选项卡在第一个选项卡完成请求之前打开;
  • 现在在其中一个选项卡中,您有一个无效的 CSRF 令牌。而且没有办法分辨它是哪一个。

从我目前看到的情况来看,似乎服务器确实为每个请求分配了一个不同的 session_id,一个覆盖另一个,如下面的复制所示:

当然,此会话信息会添加到 lograge 有效负载中,如下所示:

之后,其中一个选项卡将具有无效的 csrf-token,这将导致非常尴尬的问题,因为由于“添加到购物车”按钮都是method: :post, remote: true按钮,当用户尝试将产品添加到他们的购物车时,他们实际上会由于 Rails 在Can't verify CSRF token authenticity.发生事件时使用户会话无效,因此出现在一个空的购物车页面中。

有什么想法吗?

编辑:

通过检查 Chrome 开发工具中的 Cookie,我可以看出两个选项卡共享相同的 session_id,正如任何人所期望的那样。所以这个问题只与在 session_id 被覆盖之前生成的 CSRF 令牌有关。

0 投票
2 回答
114 浏览

php - Laravel CSRF 保护异常现在工作

我的 Laravel 项目在这个链接中

我有这个外部 HTML 表单

现在我想将表单中的数据发送到 Laravel 但我收到了这个错误

419 页面已过期

所以在我的 laravel 项目 VerifyCsrfToken 类中我写了这个

但仍然出现同样的错误

419 页面已过期

0 投票
0 回答
344 浏览

csrf-token - 如何在 cakePHP 3.7 中设置 CSRF 令牌到期?

如何以 cakePHP 3.7 形式设置 CSRF 令牌的到期时间。当我打开一个登录表单很久然后提交。它抛出黑洞请求错误。我该如何克服这个问题?

0 投票
0 回答
53 浏览

python - 使用装饰器的 csrf 令牌在 Django DeleteView 中不起作用

csrf 令牌不起作用我正在寻找一个原因。

错误信息是这个

代码是这个

html脚本代码是这样的

你知道为什么或如何解决问题吗?

0 投票
1 回答
1475 浏览

php - Fantasy Premier League API PHP cURL

我想知道您是否可以使用 PHP 为 cCURL 请求提供一些代码来帮助我,我正在尝试从 fpl api 中检索数据,以显示我的联赛排名。联赛积分榜 api 的网址是 - https://fantasy.premierleague.com/api/leagues-classic/my_league_id/standings/?page_new_entries=1&page_standings=1我可以通过浏览器查看数据,但是当我尝试检索它时对于 PHP 的 curl 请求,它会返回 403 错误,并显示消息“未提供身份验证凭据”。这意味着我需要登录凭据来检索它。

在使用开发工具和邮递员查看它之后,我现在知道我需要通过登录来获取一个 csrf 令牌,然后保存该令牌以在我请求联赛排名时使用。我不知道该怎么做,我有点做,但如果有人能为我试一试,我将不胜感激。

我需要做的是使用此表单数据向https://users.premierleague.com/accounts/login/发出 POST 请求 -

发出请求后,我需要捕获 csrf 令牌 cookie,我相信它会在名为“csrfmiddlewaretoken”的隐藏输入中,并将其保存在变量中。

获得令牌并保存后,我将向https://fantasy.premierleague.com/api/leagues-classic/my_league_id/standings/发出 GET 请求,并将我保存的 csrf 令牌变量放入标题中,然后json 解码该数据,以便我能够回显联盟详细信息。

我很确定这是怎么做的,但是我在 PHP 方面不是那么好,并且想知道是否有任何可以帮助兄弟的品味。任何帮助将非常感激 :)

我从第一部分开始,提出了最初的发布请求,但在返回令牌方面没有运气。到目前为止,这是我的代码-

0 投票
0 回答
2582 浏览

cookies - 在 Flutter 中使用 CSRF-Token 进行 OAuth2 身份验证

我想使用Oauth2 包向 REST API 验证我的颤振应用程序,但 REST API 在请求中询问 CSRF 令牌。这是我的代码,有人知道我可以如何以及在哪里添加这个 Token 吗?

我试图修改 Oauth2 Flutter 库提供的代码示例,但它不起作用。

$ Forbidden (CSRF cookie not set.): /oauth2/authorization/

$ "POST /oauth2/authorization/HTTP/1.1" 403 2990

0 投票
1 回答
183 浏览

python - Django webapp 无法在 ipad(csrf_token) 和 IE(CORS) 上运行错误

抱歉,我知道这是一个 2 个问题,但可能有一个资源可以解决我的两个问题。我有一个用 Django 创建的 web 应用程序,我正在将它加载到我已经开始测试的 wordpress 网站的 iframe 中。

目前,它可以在 google chrome、我的 android 手机和 iphone 上正常工作。但是,当我仅在使用 ipad 时从 iframe 'POST' 时,我遇到了 CSRF 令牌问题。

在浏览“django-cors-headers”文档后,我也无法加载 Internet Explorer,出现 CORS 错误。

我有 X-frame-options 和 Cors 白名单,允许网站托管 iframe。

我不知道为什么该应用程序可以在几个设置中正常工作而在其他设置中不能正常工作 - 或者错误可能只是由于我正在测试的设备上的个性化设置。如果有人能以任何方式提供帮助,将不胜感激!

0 投票
2 回答
359 浏览

django - 如何在第一个请求中传递 csrf-token

我的问题是cookies是如何工作的,当我第一次加载我的页面时,我想到了这个问题

当第一个请求被发送时,它已经在 cookie 中有 csrftoken

我在隐身窗口中尝试了相同的结果,也得到了相同的结果。我的浏览器如何在没有与服务器通信的情况下已经拥有 cookie

我正在使用 Angular 7 开发 django,问题是我正在从 Angular 发送我的请求

但作为回应,我在 setcookie 中没有得到任何 csrftoken 。

请帮助我.....很抱歉在一个问题中添加了两个问题,但两者都间接相互关联

0 投票
1 回答
981 浏览

django - CSRF 令牌丢失或不正确 - Django 2.2

我尝试在我的应用程序中创建一个管理员用户,但即使我不包含任何代码,它也会给出错误“CSRF 令牌丢失或不正确”。我找不到该怎么做。任何人都可以解决这个问题吗?

我尝试了我朋友的所有建议和 Django 文档,但没有一个可以解决它。

实际上,不需要粘贴我的代码,因为正如我之前提到的,即使没有任何 HTML 模板,也无法创建管理员用户。

在此处输入图像描述