首页 > 解决方案 > 可以篡改反应状态以绕过安全措施吗?

问题描述

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

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

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

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

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

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

标签: reactjs

解决方案


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

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

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

状态篡改

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


推荐阅读