可以篡改react状态以绕过安全措施吗?

IT技术 reactjs
2021-04-11 20:22:50

我有两个组件。用户必须用于登录的一个组件和一个用于显示某些内容的组件。

我正在考虑通过让一个具有一些react状态的组件来实现我的应用程序,该状态告诉它呈现登录组件或另一个。

如果我这样做,是否可以在客户端手动设置状态,以便绕过登录屏幕并显示内容?

编辑:添加了一些示例代码。

render () { if (this.state.authorized) { return <Content /> } else { return <Login /> } }

考虑到这段代码,鉴于只有<Login />组件能够将authorized状态设置true为 ,客户端是否可以通过以某种方式手动设置状态来简单地解决这个问题?例如通过 chrome react 开发工具之类的?

1个回答

客户端 JavaScript 在设计上并不安全,即用户可以完全控制在用户浏览器中运行的脚本。考虑到用户在本地有足够的访问权限,代码总是可以被读取和修改的。适用于客户端代码的安全措施只会使此过程更加复杂。

这与安全性不无关系,只要对敏感数据的访问由后端控制即可。

当然可以更改组件状态并显示不应该显示的组件。例如,React 开发工具可用于此演示以设置authorizedtrue

状态篡改

用户基本上破坏了自己对应用程序的体验。由于用户跳过了后端身份验证过程,将显示一个没有敏感数据的空白组件。

究竟是什么问题?如果这是问题,则没有安全问题。
2021-05-24 20:22:50
那么有什么办法可以解决我的问题吗?
2021-06-01 20:22:50
哦,抱歉,所以您是说只要登录屏幕保护的所有内容背后都有安全保护,那么就没有安全问题?
2021-06-06 20:22:50
没错。这是我们唯一的选择,因为用户可以完全控制在他/她的浏览器中评估的脚本。
2021-06-18 20:22:50