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

时间:2014-02-19 10:03:50

标签: security cookies asp.net-web-api access-token claims-based-identity

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

  

持票人令牌就像现金:发现者,守护者。

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

1 个答案:

答案 0 :(得分:4)

  

将它保存到cookie是否安全?

没有。可以通过XSS攻击(以及其他向量)窃取Cookie 此外,这可能会受到CSRF的影响,因为cookie会随着任何请求自动提交。

  

我可以在将令牌保存到cookie之前使用hash加密令牌

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

  

还有其他选择吗?

基本上,您应该通过安全连接(HTTPS)将令牌提供给用户,但是他们应该手动提交它以确保安全性(再次通过HTTPS)