API 令牌在 Flux (Redux) 存储中是不是安全?

Posted

技术标签:

【中文标题】API 令牌在 Flux (Redux) 存储中是不是安全?【英文标题】:Are API tokens safe inside a Flux (Redux) store?API 令牌在 Flux (Redux) 存储中是否安全? 【发布时间】:2015-12-19 18:19:43 【问题描述】:

将身份验证调用返回的 API 令牌存储在 Flux(特别是 Redux)存储中是否安全?我已经使用 Webpack 编译了项目中的所有资产,我认为这意味着商店的范围超出了希望读取商店并提取令牌的第三方脚本的范围。

而且,值得一提的是,令牌是通过 HTTPS 在 Authorization: bearer ... 标头中发送的。

【问题讨论】:

绝对不是。至少不会,除非任何人都可以查看您的 API 密钥。任何人都可以随时访问客户端 JS 中的数据(例如:chrome dev tools)。 阅读此文; ***.com/questions/20963273/… 【参考方案1】:

如果页面上正在运行不受信任的第 3 方脚本,那么您应该假设没有什么是安全的,因为页面的整个完整性都会受到损害。

如果只有受信任的脚本在运行,那么您可以假设您的令牌是安全的,这取决于浏览器的安全性以及您的网站对 XSS 攻击的安全性。

编辑:

为了澄清,这是来自 3rd 方脚本的安全性。如果您试图向用户自己隐藏您的令牌,那么答案是它总是不安全的,无论您如何混淆您的代码,因为如果用户的机器可以访问它,那么最终用户可以访问它(你可以让它变得更困难,但并非不可能)。

【讨论】:

@Carson 我想补充一点,存储在 JS 中的任何内容都不应被认为是安全的,因为理论上可以访问您的页面的任何脚本都可以访问脚本/范围.我同意特雷弗的观点;这实际上归结为您对页面上运行的脚本的信任程度。

以上是关于API 令牌在 Flux (Redux) 存储中是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

在 Flux / Redux 中保存啥和不保存啥?

第3章 从Flux到Redux

使用 redux saga 在 react native 中实现令牌刷新

将数据库中的所有数据存储到redux存储中是个好主意

Flux Utils 存储和异步定时器

react redux 同步调用