redux商店在哪里保存?

Ilj*_*lja 18 javascript redux

我正在研究redux应用程序的安全性,我在redux存储中存储了某些值,即用户令牌等.并试图查看其他人是否可以通过xss攻击获取访问权限,例如,我检查了sessionStorage,localStorage ,cookies,它不存在,以及它不在我的app.js文件(我的捆绑文件),因此我的问题.

ste*_*esu 20

即将回答React和Redux如何存储数据?是localstorage还是cookies?当它作为副本关闭时.所以我想在这里粘贴我的答案.

回答

首先,值得注意的是UI库实际上并不管理状态(除了组件级状态).ReactJS和VueJS希望您将数据传递给它们,就像将参数传递给函数一样.他们并不关心这些数据的来源或存储方式.

另一方面,Redux 不是 UI库 - 它是一个状态管理库.Redux 确实存储状态.VueJS对Redux的推论将是"Vuex".

除此之外,您需要知道的下一件事是状态管理和状态持久性之间存在差异.像Redux和Vuex这样的库通常会跟踪您的变量并提供更改状态的工具(特别是Reducer) - 但它们不管理该状态的持久性.持久性是指在某个地方保存状态,以便在下次有人访问您的应用时重新加载它 - 而且似乎是您对此感到好奇(因为您提到了Cookie和本地存储)

持久性通常是手工编码(将状态发送到API端点,将其保存到数据库,然后当您重新加载页面时,您可以ping不同的API端点以检索状态)或者您使用插件/模块为您的状态管理器为你处理持久性.例如,有一个流行的Redux Local Storage插件称为(通常足够的)redux-localstorage

  • 你周围有很多有趣的内容。愿点赞和徽章永远与您同在! (3认同)

die*_*end 11

从文档的这一部分(http://redux.js.org/docs/FAQ.html#performance-state-memory)我推断它存储在内存中,所以它不是持久的.

  • @shintaroid - 不不不。在这一点上,您也可以完全放弃身份验证。大量的客户端漏洞使得利用它比您想象的要容易得多。我认为这比根本没有身份验证更危险,因为你正在引诱一种错误的安全感。 (2认同)
  • @shintaroid - 当然可以!对不起,如果我遇到太苛刻了!我只是想强调一下。再次,对不起,如果我遇到了卑鄙的人。有一个很棒的一天! (2认同)

Muh*_*han 6

Redux 中的状态存储在内存中。这意味着,如果刷新页面,状态就会被清除。redux 中的状态只是一个持久存在内存中的变量,因为它被所有 redux 函数引用。

一个错误的观念是:

在redux中,我们知道状态是作为对象存储的。

这是不正确的。redux 中的状态可以是任何有效的 JavaScript 值,而不仅仅是一个对象。它通常最有意义的是它是一个对象(或像数组这样的特殊对象),因为它允许更灵活的数据结构(但你可以根据你的需要使状态只是一个数字) 。