可以篡改反应状态来绕过安全措施吗?

时间:2018-09-20 03:10:18

标签: reactjs

我有两个组成部分。用户必须使用一种组件登录,而另一种组件则显示一些内容。

我当时正在考虑通过使一个组件具有某种反应状态来告诉我要呈现登录组件或另一个组件来实现我的应用程序。

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

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

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

请牢记这段代码,假设只有<Login />组件才能够将authorized状态设置为true,那么客户端是否可以简单地解决这个问题通过以某种方式手动设置状态?例如通过chrome react开发工具之类的东西?

1 个答案:

答案 0 :(得分:1)

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

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

当然可以更改组件状态并显示不应显示的组件。例如,React开发工具可用于this demo来将authorized设置为true

state tampering

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