gpt4 book ai didi

php - X-XSRF-TOKEN 和 X-CSRF-TOKEN 有什么区别?

转载 作者:可可西里 更新时间:2023-10-31 22:13:27 39 4
gpt4 key购买 nike

什么时候用隐藏字段,什么时候用header,为什么?
X-XSRF_TOKEN 我们什么时候用?
X-CSRF TOKEN我们什么时候用?

最佳答案

所有这些都是为了防止跨站请求伪造,在向后端发送请求时只需要使用其中一个。不同的名称来自不同的框架。

这都是关于发送 csrf value后端。然后后端会将它与存储在该特定用户的数据库中的 csrf 值进行比较,如果匹配,它将允许处理请求。

csrf :

  • 用于 html 表单(不是 ajax)
  • 在呈现 html 表单时在后端生成。
  • 我们不能直接在html表单中设置请求头,所以一个简单的方法是通过表单输入将其作为隐藏字段发送。
  • 你可以随意命名这个隐藏的输入。例如<input name="my_csrf_input" value="a_hashed_string_the_csrf_value"

x-csrf-token:

  • 它被添加到请求 ajax 请求的 header
  • 要使用它,我们可以将 csrf value在呈现 html 时在元标记中,然后在前端我们可以从该元标记中获取值并将其发送到后端。

Laravel 特定:

  • 使用 laravel 时作为后端。 Laravel 会自动检查此 header 并将其与有效的 csrf value 进行比较在数据库中。(laravel 有一个中间件)

x-xsrf-token:

  • 它被添加到请求 ajax 请求的 header
  • angular 和 axios 等热门库, 自动从 xsrf-token 获取此 header 的值cookie 并将其放入每个请求 header 中。
  • 要使用它,我们应该创建一个名为 xsrf-token 的 cookie在后端,那么我们使用 angular 或 axios 的前端框架将自动使用它。

Laravel 特定:

  • 因为它很流行,laravel 在每个响应中创建这个 cookie。
  • 所以当你使用例如axiosangularlaravel ,您无需执行任何操作。只需让用户登录,“auth”中间件就会完成这项工作。
  • 在 laravel 中,它是一个比 x-csrf-token 更大的字符串因为 cookies 在 laravel 中是加密的。

关于php - X-XSRF-TOKEN 和 X-CSRF-TOKEN 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42408177/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com