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

html-parsing - 无法从赛普拉斯的 html 正文中提取 CSRF 令牌

我无法从赛普拉斯的 html 解析 CSRF 令牌。我正在关注这个链接:Logging in using CSRF Token in Cypress

尝试遵循上述链接中的策略#1 ,但我一直将令牌视为未定义。

这就是我的 html 的样子:

返回 html 看起来像这样

这就是我的代码的样子:

0 投票
3 回答
1743 浏览

php - 使用 ajax 提交表单时刷新 csrf 令牌是个好主意吗?

我想延长我的 CSRF 令牌到期时间。我知道laravel-caffeine,但如果页面空闲太久,令牌仍然过期。(例如 24 小时以上)

所以我想出了一个想法,首先使用 ajax GET 方法检索最新的 csrf 令牌,然后使用这个刷新的令牌提交表单。

但我不确定是否存在一些安全问题。例如,假设可以在http://example.com/get_csrf 获取最新的 csrf 令牌,并且攻击者也可以访问此 URL。我想知道对手是否可以利用它并破坏 csrf 保护?

0 投票
0 回答
254 浏览

google-apps-script - 如何修复返回的错误代码 500 以登录需要 CSRF 令牌的网站

我尝试使用谷歌应用程序脚本登录网站,但卡在代码“var loginResponse = UrlFetchApp.fetch(loginURL,loginOptions);”上 返回错误代码500。

我试图在 chrome 开发工具中获取所有必要的数据并输入我的代码,但仍然没有运气。编辑:我添加了函数 grabData 来获取令牌。我看到 logger.log 返回不同的令牌,也许这就是我无法登录的原因。

在我成功登录网站之前,dataResponse 不会返回任何日志,我的代码有什么问题吗?

0 投票
0 回答
115 浏览

javascript - nodejs put请求上的无效csrf令牌

我正在尝试为我的 nodejs 脚本包含 csrf 令牌保护。生成的令牌并添加到 post 请求的标头,但它得到 Invalid csrf token token

后端脚本

})

前端脚本

应要求收到此错误消息'

比较 getcsrftoken() 输出和 put 请求头,两者是相同的

{看到几个与这个问题相关的问题,但没有一个能解决这个问题}

0 投票
1 回答
585 浏览

spring-mvc - 无效的 CSRF 令牌

在我的 Web 应用程序的某些流程中,我收到 csrf 令牌无效异常,如下所示:

HTTP 状态 403 - 在请求参数“_csrf”或标头“X-CSRF-TOKEN”上发现无效的 CSRF 令牌“ac6a93fd-6903-40f8-a5e2-00b9e830618b”。

此处存在 CSRF 令牌,它不为空,但无效。会话未过期。遇到与此处未找到 CSRF 令牌类似的问题并解决了相同的问题。但在这里我被困住了。

编辑:

当我们在浏览器中打开多个选项卡并从其中一个选项卡注销并从另一个选项卡尝试从登录页面登录时,会出现此问题。

0 投票
2 回答
3181 浏览

python - 如何修复“禁止 (403) CSRF 验证失败。请求中止。” django中的错误

我在标题中遇到了这个常见错误。我正在虚拟环境文件夹中的 Django 中做一个项目。

设置.py:

索引.html:

{% csrf_token %}在我的 html 文件中添加了试图解决这个问题 - 没有用。我在网上找到了这个标签示例:

<input type="hidden" id="csrf_token" value='{"csrfmiddlewaretoken": "{{ csrf_token }}"}'>.

不幸的是,我不知道如何使用它来修复我的错误。感谢帮助

0 投票
1 回答
36 浏览

django - 在 forms.py 中声明 CSRF-Token

我使用 Djangos CSRF-Token 的方式主要是在互联网上描述的:

MyFormPage.html

但我想知道 - 有没有办法以某种方式直接将它包含在forms.py?

0 投票
0 回答
400 浏览

ajax - 如何在codeigniter中使用CSRF令牌和数据库中的Ajax Post数据并给出403错误..?

*第一次在codeigniter中将数据发布到数据库中时,我的数据已发布到数据库,但是当我第二次尝试将数据发布到数据库中时,它给了我403错误。第一次代码有效,当我第二次发布它时me 403 错误数据未发布或保存在我的数据库中。*

查看页面代码:

控制器代码:

型号代码:

0 投票
0 回答
340 浏览

javascript - 无法使用 Google Apps 脚本 (javascript) 对 Fantasy Premier League API 进行身份验证

如果有人可以帮助我验证 FPL 团队 API,我将非常感激 - 链接在这里: https ://fantasy.premierleague.com/api/my-team/6803860/ 在浏览器中对我有用(当我已登录该站点)但将返回“未提供身份验证凭据”。当我尝试通过 AppScript 访问(将数据引入 GoogleSheets)时,对您和我来说也是如此。

在使用开发工具和邮递员查看它之后,我现在知道我需要通过登录来获取一个 csrf 令牌,然后保存该令牌以在我请求联赛排名时使用。

我有一个我认为很好的刺,但它似乎不起作用(不返回 csrf cookie 或给我一个成功消息)......

关于我做错了什么以及下一步将采取哪些 cookie 并从上面的端点获取数据的任何想法?谢谢!

0 投票
1 回答
648 浏览

rest - 我需要为 /login 端点提供 CSRF 保护吗?

我知道

这个问题已经被问过很多次了,但是经过几个小时的搜索,我仍然没有明确的答案。

甚至像https://github.com/pillarjs/understanding-csrf这样的项目也被放弃了,多年来没有像这样回答新的问题和疑虑。

问题

假设我有:

  • 一个后端back.domain.com
  • 上的前端front.domain.com

我的后端是一个简单的 nodejs 应用程序,具有以下其余端点:

  1. POST /login

    1. 接受 JSON 正文,如:{"username": "myname", "password": "mypass"}
    2. 验证凭据
    3. 如果OK给出 200 并创建一个带有会话的 cookie
    4. 如果给出 401
  2. GET /players

    1. 检查 cookie 中的会话
    2. 如果OK给出 200 {"players": "[...]"}
    3. 如果给出 401
  3. POST /player/1

    1. 检查 cookie 中的会话
    2. 如果OK给出 200 并编辑播放器
    3. 如果给出 401

我的前端应用程序有:

  1. /login带有表单(带有usernamepassword字段)的页面,用于发出POST请求back.domain.com/login

  2. /players哪个请求GET请求back.domain.com/players

  3. 发出POST请求的按钮back.domain.com/player/1

问题

  1. 在这种情况下我需要 CSRF 保护吗?

    我认为是的,我需要,因为攻击者可以发出请求并使用我back.domain.com/player/1malicious.site.com会话 cookie 来编辑播放器,因为我在我的domain.com.

  2. X-CSRF-Token我第一次登录时是否需要 CSRF 保护(例如标题) back.domain.com/login

    1. 在这种情况下,我的浏览器中仍然没有任何会话 cookie。
    2. 而且我也不知道在哪里可以获得我的 CSRF 令牌作为X-CSRF-Token授权标头。

    我在https://fractalideas.com/blog/making-react-and-django-play-well-together-single-page-app-model上阅读,他们为此在后端创建了一个专用端点,他们解释说不是安全漏洞。

你有什么想法?