如何以及在何处安全地存储访问令牌
How and where to store access token securely
我知道这个问题已经被问了很多次,但坦率地说,我没有看到一个满足我标准的答案。
所以我有一个 ASP.NET WEB API,它在提供用户/通行证时发出访问令牌 (JWT)。目前,请求来自 SPA 应用程序。我遇到的问题是存储访问令牌,以便可以从 JavaScript 将其重新发送到 API。到目前为止,看起来有 2 个常用建议的选项
- HTML5 网上商店
- 饼干
但是这些实际上都不是安全的,因为它们不受XSS和CSRF的保护。最重要的是,它使令牌易于访问。
您有什么建议吗?
网上应用店容易受到 XSS 的攻击。Cookie 如果不是 HTTPONLY,则容易受到 XSS 的攻击。当 Cookie 不严格时容易受到 CSRF 的攻击,即使它是 HTTPONLY。
所以我认为我们可以将访问令牌存储在内存中。问题是页面刷新之间没有持久性。因此,为了持久性,我们可以在 Web 存储或 cookie 中存储刷新令牌,每当我们没有访问令牌时,我们可以使用刷新令牌静默地获取一个新令牌。
使用身份服务器时,刷新令牌对任何未经授权的客户端都没有用处。
因此,如果他们使用 XSS 并使用刷新令牌 cookie 窃取刷新令牌或 CSRF,则他们无法模拟用户或获取访问令牌。
相关文章:
- 使用Javascript获取Twitter访问令牌
- FB.login访问令牌facebook javascript SDK
- Phonegap:获取访问令牌时出现LinkedIn登录错误
- 访问令牌和响应数据
- 访问令牌facebook未激活
- OAuth和访问令牌
- 如何安全地获取&使用Facebook应用程序访问令牌发送通知使用PHP&Javascript
- 使用Javascript向ID数组发送通知时出现Facebook访问令牌错误
- 如何使用密码和用户名从 bitly 获取访问令牌
- Facebook Javascript SDK:发布到提要时验证访问令牌时出错
- Axios CORS 问题与 Github oauth 未获取访问令牌
- 在 js sdk 中手动设置访问令牌
- 如何使用访问令牌与Facebook Graph API
- 打开图形:Java脚本:必须使用活动访问令牌来查询有关当前用户的信息
- 在angularjs或nodejs中获取Pocket访问令牌
- 从网页在amazoncognito中注册Facebook访问令牌
- 如何以及在何处安全地存储访问令牌
- 如何在通过Soundcloud的JavaScript API连接到Soundcloud时存储/应用访问令牌
- 如何全局存储扩展访问令牌
- 在使用Instagram API时,如何在Meteor中请求、存储和使用访问令牌