如何在客户端持有持票人令牌

Bar*_*osz 7 security cookies claims-based-identity access-token asp.net-web-api

我试图在ASP.NET Web API 2中了解基于声明的身份验证.在我的应用程序中,我使用VS 2013模板,它实现了OAuth 2.0并使用了承载令牌(JWT,我记得).我的问题是 - 在客户端持久化令牌的最佳方法是什么.在他的书Badrinarayanan Lakshmiraghavan中描述了不记名代币

持有人令牌就像现金:发现者,守护者.

因此,将它保存到cookie是否安全?是不是意味着谁会窃取cookie将获得对应用程序的完全访问权限?另一方面,我可以在将令牌保存到cookie之前使用hash加密令牌.它足够安全吗?还有其他选择吗?我已经看到几个问题在stackoverflow上提出类似的问题,但从未找到令人满意的答案.

小智 4

将其保存到 cookie 中安全吗?

不会。Cookie 可以通过 XSS 攻击(和其他媒介)被窃取。此外,这可能容易受到 CSRF 的影响,因为 Cookie 会随任何请求自动提交。

我可以在将令牌保存到 cookie 之前使用哈希对其进行加密

这也行不通。散列不是一种安全的加密方式(而且不允许解密)

还有其他选择吗?

基本上,您应该通过安全连接 (HTTPS) 将令牌提供给用户,但为了安全起见,他们应该手动提交它(再次通过 HTTPS)

  • 这并不能回答问题。JWT 令牌应如何保留在客户端? (4认同)