美文网首页
关于单页面应用的 Token Storage 设计策略

关于单页面应用的 Token Storage 设计策略

作者: 华山令狐冲 | 来源:发表于2022-04-28 22:55 被阅读0次

单页面应用(Single Page Application) 通过 API 调用同外界交互。调用 API 时我们通常需要在请求中附加访问令牌,即 Access Token. SPA 开发人员需要确保令牌和其他敏感数据不易受到跨站点脚本 (XSS) 的攻击,并且不会被恶意 JavaScript 读取。

Auth0 SDK 建议将令牌存储在浏览器内存中作为最安全的选项。 使用 Web Worker 处理令牌的传输和存储是保护令牌的最佳方式,因为 Web Worker 运行在与应用程序的其余部分不同的全局范围内。 使用 Auth0 SPA SDK,其默认存储选项是利用 Web Workers 的内存存储。

如果由于某种原因不能使用 Web Workers,Auth0 建议使用 JavaScript 闭包来模拟私有方法。

使用默认存储选项为内存存储的 Auth0 SPA SDK,根据令牌的类型利用 Web Workers 和 JavaScript 闭包。

注意:采取这种方式存储的 Access Token 不提供跨页面刷新和浏览器选项卡的持久性。

Browser local storage scenarios

使用浏览器本地存储可以替代需要从 iframe 检索访问令牌和跨域基于 cookie 的身份验证的机制,因为这些机制由于浏览器限制(例如 ITP2)而无法实现。


将令牌存储在浏览器本地存储中提供了跨页面刷新和浏览器选项卡的持久性,但是如果攻击者可以使用跨站点脚本 (XSS) 攻击在 SPA 中运行 JavaScript,他们可以检索存储在本地存储中的令牌。 导致 XSS 攻击成功的漏洞可能位于 SPA 源代码中,也可能位于 SPA 中包含的任何第三方 JavaScript 代码(例如 bootstrap、jQuery 或 Google Analytics)中。

如果 SPA 使用隐式(业界规范是建议使用带有 PKCE 的授权代码流)或混合流,为了降低安全风险,可以减少令牌的到期时间。 这减少了反射 XSS 攻击的影响。要减少过期时间,可以在 Dashboard > API > 设置里修改浏览器流的令牌过期,单位为秒。

将来自域外源的第三方 JavaScript 代码的数量减少到所需的最低限度(例如指向 jQuery、Bootstrap、Google Analytics 等的链接)。减少第三方 JS 代码可降低 XSS 漏洞的可能性。 在第三方脚本中执行子资源完整性 (SRI) 检查以验证获取的资源是否在没有意外操作的情况下也能够安全地交付。

相关文章

  • 关于单页面应用的 Token Storage 设计策略

    单页面应用(Single Page Application) 通过 API 调用同外界交互。调用 API 时我们通...

  • (22)打鸡儿教你Vue.js

    vue.js 单页面,多页面 Vue cli工具复杂单页面应用Vue cli工具 交互设计,逻辑设计,接口设计 代...

  • JWT: 基于Token的验证

    现在SPA(Single Page Application, 单页面应用)和前后端分离已经是主流. 基于Token...

  • 前端单页面应用缓存策略

    在当前常用的单页面页面开发中。会将生产包发布为:固定名称的html文件和带hash的js、css文件。 所以我们需...

  • vue-cli vue 创建项目

    1、单页面应用程序 1.1 什么是单页面应用程序 单页面应用程序 (英文名:Single Page Applica...

  • 2019-02-17

    关于前端单页面应用 1.前端单页面应用就是在一个主要的界面上和用户进行交互,在交互的过程中不需要重载一整个新的页面...

  • 为什么要用Nuxt.js?

    现在我们的项目大多数都是spa(单页面应用),感觉单页面应用比之前的模板渲染要好很多,首先单页面应用是前后端分离,...

  • 【Vue】学习vue前的几个常见问题(part2)

    1.Vue ≠ 单页面应用 Vue可以用来做单页面应用,但是不表示Vue只能用来做单页面应用。Vue完全支持传统网...

  • 设计模式演变过程

    基本设计模式之MVC模式 基本设计模式之MVP模式 基本设计模式之MVVM模式 SPA和MPA SPA:单页面应用...

  • 单页面和多页面概念

    简述单页面应用和多页面应用的概念 3.1单页应用(single-page application) 概念整个项目只...

网友评论

      本文标题:关于单页面应用的 Token Storage 设计策略

      本文链接:https://www.haomeiwen.com/subject/sdsqyrtx.html