首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React/Redux可以在前端操作存储状态吗?

React/Redux可以在前端操作存储状态吗?
EN

Stack Overflow用户
提问于 2021-08-03 09:27:35
回答 2查看 162关注 0票数 0

我对react (或者更确切地说redux)商店安全性有一些一般性的问题:是否有可能以某种方式从前端操纵商店状态?例如,从前端设置一些"isLoggedIn“或"isAdmin”属性为真?

我认为商店可能在客户端浏览器上的某个地方,并保存在内存中。然后,存储必须来自加载并注入到浏览器上的html中的javascript包,对吧?我是否可以像浏览器中的某个视图部件一样访问商店,然后对其进行操作?或者它更复杂?

EN

回答 2

Stack Overflow用户

发布于 2021-08-03 10:08:47

是的,它可以很容易地操作。查看浏览器DevTools中的“应用程序”选项卡。根据是将其存储在LocalStorage还是SessionStorage中,您可以找到一个代表整个存储对象的JSON对象。您也可以对其进行编辑或删除。您可以尝试向存储添加一些中间件来对当前状态进行签名,但整个签名和验证代码必须发送到客户端并在那里执行。所以这只会让攻击者的事情变得更难,但也不是不可能。您可以在没有存储空间的情况下完成此操作,并将其保存到RAM中,但是当用户刷新页面时,存储空间将消失。

然而,在后端站点上,将每个客户端视为说谎者,并仔细检查任何身份验证/授权信息。在前端,您可以在普通应用程序数据和安全信息之间进行拆分。安全相关信息可以在每次页面刷新时重新加载,但也可以操作服务器响应。因此可以用一些RSA Public/Privatekey对其签名以保存。然后,您可以将此信息存储在React Context中,并将其提供给每个组件。

正常的应用程序数据可以保留在Redux存储中并以正常的方式使用。

票数 4
EN

Stack Overflow用户

发布于 2021-08-03 09:33:53

是的,您可以使用store.getState()获取当前状态,使用store.dispatch()设置一个新值。

也有其他选择的钩子。参考here

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68633519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档