【问题标题】:Angular and JWTAngular 和 JWT
【发布时间】:2016-04-01 01:02:17
【问题描述】:

通过在每个请求的标头中传递令牌,我已经在 Angular 中使用 JSON Web 令牌有一段时间了。这适用于我所有使用它的应用程序。

我的问题是,它必须在标题中传递吗?我知道这种方式可能更安全,但如果请求是通过 https 发出的,那么将其设置为 GET 或 POST 参数就足够了吗?

【问题讨论】:

  • 您可以随意将其发送到服务器(标题、cookie、查询字符串、帖子正文、信鸽)。我很好奇使用标题有什么问题?在所有选项中,它似乎是最优雅/最安全的。

标签: angularjs jwt


【解决方案1】:

不,它不必位于标头中,但这样做可以让您轻松保留请求类型,而不会影响安全性。

如果您确实要发出 GET 请求,请不要在 URL 中传递 JWT,因为仅通过监控流量(实际上看不到请求)就可以更容易地拦截它。您可以将 GET 请求转换为 POST 请求并将 JWT 放入负载中,但这会破坏不同请求类型的目的,这会偏离最佳实践。

如果您只想保护 POST 和 PUT 请求,并且您的所有 GET 请求都是开放的,那么您可以在有效负载中发送您的 JWT。它可能会让以后遇到您的代码的任何人(包括您)感到困惑,但没有技术原因阻止您,安全性是一样的。

【讨论】:

  • 我同意这一切。但是我最近在互联网上看到一些人提到标头不是转移令牌所必需的,但他们从未真正解释过原因,所以我想我会问一下是否有人找到了通过 get 或传递令牌的案例发布属性。
  • GET 请求没有有效负载,因此所有请求类型中唯一一致的选项是 (i) 标头或 (ii) 请求 URL。即使在 HTTPS 上,中介也可以看到请求 URL,因此您只需要跨所有请求类型的标头选项。
猜你喜欢
  • 2023-03-21
  • 2019-01-10
  • 2016-08-28
  • 2018-05-15
  • 2016-05-01
  • 2020-07-23
  • 2018-04-03
  • 2018-04-28
  • 2015-07-09
相关资源
最近更新 更多