Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript redux商店保存在哪里?_Javascript_Redux - Fatal编程技术网

Javascript redux商店保存在哪里?

Javascript redux商店保存在哪里?,javascript,redux,Javascript,Redux,我正在研究redux应用程序的安全性,我正在redux存储中存储某些值,即用户令牌等。。并试图看看其他人是否可以通过xss攻击访问它们。例如,我检查了会话存储、本地存储、cookie,但它不在那里,也不在我的app.js文件(我的捆绑文件)中,因此我提出了问题。从文档的这一部分()我推断它存储在内存中,因此它不是持久性的。Redux对所有数据使用内部内存。例如,当您订阅Store时,Redux只是,不使用Cookie或LocalStorage。刚要回答,它就作为副本关闭了。所以我想把我的答案贴在

我正在研究redux应用程序的安全性,我正在redux存储中存储某些值,即用户令牌等。。并试图看看其他人是否可以通过xss攻击访问它们。例如,我检查了会话存储、本地存储、cookie,但它不在那里,也不在我的app.js文件(我的捆绑文件)中,因此我提出了问题。

从文档的这一部分()我推断它存储在内存中,因此它不是持久性的。

Redux对所有数据使用内部内存。例如,当您订阅Store时,Redux只是,不使用Cookie或LocalStorage。

刚要回答,它就作为副本关闭了。所以我想把我的答案贴在这里

答复 首先,值得注意的是UI库实际上并不管理状态(组件级状态除外)。ReactJS和VueJS希望您像向函数传递参数一样向它们传递数据。他们不关心这些数据来自何处,也不关心您如何存储它们

另一方面,Redux不是一个UI库,而是一个状态管理库。Redux不存储状态。Redux的VueJS推论是“Vuex”

有了这些,接下来你需要知道的是,状态管理和状态持久性之间有区别。像Redux和Vuex这样的库通常会跟踪变量,并提供更改状态的工具(特别是还原器),但它们不会管理该状态的持久性。持久性是指将状态保存到某个地方,以便下次有人访问你的应用程序时重新加载状态,这似乎是你所好奇的(因为你提到了cookies和本地存储)


持久性通常是手工编码的(将状态发送到API端点并将其保存到数据库中,然后在重新加载页面时ping另一个API端点以检索状态),或者使用状态管理器的插件/模块为您处理持久性。例如,有一个流行的Redux本地存储插件称为(非常简单)

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

一种误解是:

在redux中,我们知道状态存储为对象


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

Redux存储只是一个JavaScript对象。如果你做了
var-store={}
,你不会期望在持久性存储中找到它,是吗?它将在应用程序中的某个位置定义,并存储在随机访问内存的堆中。@调试react redux应用程序时,是否可以访问Chrome控制台中的存储?当然可以,通过或确保将存储添加到窗口对象。类似于
let store=createStore(…);window.store=store
这是否意味着第三方可以访问redux store?它存储在浏览器的内存中。取决于您对第三方的定义。在客户端发生的任何事情都应该假定是可访问的。可以在客户端访问存储,但这样做容易吗?我想知道我是否可以为一个应该在我的系统内部使用的小应用程序实现user auth use just Reduxcompany@shintaroid-不,不。在这一点上,您最好完全放弃身份验证。大量客户端漏洞使得这一漏洞比您想象的要容易利用。我认为这比没有授权更危险,因为你在引诱一种虚假的安全感。@shintaroid-当然!对不起,如果我遇到太苛刻的话!我只是想强调一下。再一次,如果我遇到卑鄙的人,我很抱歉。祝你今天愉快!你周围有很多有趣的内容。愿选票和徽章永远与你同在@史蒂文德苏-非常好,清晰的回答。希望我能给更多的喜欢。