繁体   English   中英

在CSRF Token通过Postman的情况下,我们可以在不提交表格的情况下获取数据吗

[英]Can we get the data without submitting the form in case of CSRF Token via Postman

我通过邮递员点击 HTTP API 从网站获取一些数据。 它对我来说工作正常,但从最近几天开始它给了我一个错误,即

无效的 csrf 令牌 403

因此,当我通过 chrome 中的开发人员工具进行检查时,我转到网站的网络选项卡并检查 API。

所以现在站点也在头字段中发送CSRF-Token。

所以我知道我可以通过它生成 csrf 令牌的 API。

我还从 API 获取令牌,并像在原始站点中那样发送带有标头的令牌。

但我想知道为什么每次 API 返回无效的 csrf 令牌时

是否可以通过邮递员发送 CSRF 令牌。 因为据我所知,csrf 令牌用于停止伪造请求。 并且该站点有一个带有 csrf 令牌隐藏字段的表单,并且在提交表单时,浏览器从该隐藏字段获取令牌并像这样工作。

我想知道一些事情:-

1)是否可以通过邮递员在标头字段中发送 csrf 令牌。 或者我们必须通过浏览器登录网站,然后才能获取数据。

2)如何使用 Postman 从站点获取数据?

3)我是否需要使用一些无头浏览器来实现这一点?

4)当我完成一篇文章时,他们说我们需要在 cookie 中设置 csrf 令牌,然后我们可以从 cookie 中获取令牌并发送请求。

任何帮助深表感谢。

谢谢

通常 CSRF 令牌实现与会话绑定,因此请确保您使用相同的会话。 当您调用返回 CSRF 令牌时,将创建会话。

如果后端使用 cookie 进行会话实现,则可以使用 Post man 中的 cookie 拦截器来传递相同的会话 cookie。

  1. 是否可以通过邮递员在标头字段中发送 csrf 令牌? 或者我们必须通过浏览器登录网站,然后才能获取数据。

您可以通过访问网站获取 CSRF 令牌,但通过 Postman 发送。 CSRF 令牌,在很多情况下,不依赖于网站登录,只依赖于站点访问。

  1. 如何使用 Postman 从站点获取数据?

如果网站在响应标头中返回 CSRF,那么您可能会在 Postman 中使用它。

如果您需要一些其他数据 - 这取决于网站响应...我认为您将能够获得数据,前提是您的 CSRF 或/和其他表单数据是正确的。

  1. 我是否需要使用一些无头浏览器来实现这一点?

最好使用浏览器自动化,因为浏览器管理所有会话数据,包括 cookie、标题等。

  1. 当我阅读一篇文章时,他们说我们需要在 cookie 中设置 csrf-token,然后我们可以从 cookie 中获取令牌并发送请求。

是的,CSRF 可能由服务器在 cookie 中和作为单独的请求标头设置或要求。 因此,在以下任何情况下可能需要 CSRF(取决于网站):

  • 曲奇头
  • 单独的标题
  • 表单域

我建议您使用脚本语言来使用 CSRF(或类似物)来获取数据。 一个例子展示了如何在 Python 中做到这一点。

笔记

如果站点随每个 request/response 更改 CSRF,则该示例将不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM