security - 如何在客户端保留不记名 token

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

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

A bearer token is like cash: finders, keepers.

因此,将其保存到 cookie 中是否安全?这是否意味着窃取 cookie 的人将获得应用程序的完全访问权限?另一方面,我可以在将 token 保存到 cookie 之前使用哈希对其进行加密。这样就足够安全了吗?还有其他选择吗?我在 stackoverflow 上看到很少有人提出类似的问题,但从未找到令人满意的答案。

最佳答案

is it safe to save it to a cookie?

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

I could encrypt the token using hash just before saving it to the cookie

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

Are there any other alternatives?

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

关于security - 如何在客户端保留不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877097/

相关文章:

javascript - 提交和页面更改后,表单值保留为 cookie

ruby - 如何为 rhomobile/rhodes webview 设置 cookie

c# - POST web api 上的内部错误 500

.net - Silverlight 安全吗?

javascript - Web 应用程序访问用户的文件系统

c# - 如何创建一个只读 token 来验证某些值?

javascript - 关闭对全局变量的访问 javascript

java - 我收到 IllegalStateException : Already connected and I cannot figure out why

c# - 读取 MVC 4 Web Api 多部分数据

c# - 将 IPv6 环回地址解析为 Uri