reactjs - 可以篡改反应状态以绕过安全措施吗?
问题描述
我有两个组件。用户必须用于登录的一个组件和一个用于显示某些内容的组件。
我正在考虑通过让一个组件具有一些反应状态来告诉它呈现登录组件或另一个组件来实现我的应用程序。
如果我这样做,是否可以在客户端手动设置状态,以便绕过登录屏幕并显示内容?
编辑:添加了一些示例代码。
render () {
if (this.state.authorized) {
return <Content />
} else {
return <Login />
}
}
考虑到这段代码,鉴于只有<Login />
组件能够将authorized
状态设置true
为 ,客户端是否可以通过手动设置状态来简单地解决这个问题?例如通过 chrome react 开发工具之类的?
解决方案
客户端 JavaScript 在设计上并不安全,即用户可以完全控制在用户浏览器中运行的脚本。考虑到用户在本地有足够的访问权限,代码总是可以被读取和修改的。适用于客户端代码的安全措施只会使此过程更加复杂。
这与安全性无关,只要对敏感数据的访问由后端控制。
当然可以更改组件状态并显示不应该显示的组件。例如,可以使用 React 开发工具将此演示设置authorized
为true
:
用户基本上会破坏自己对应用程序的体验。由于用户跳过了后端身份验证过程,因此将显示没有敏感数据的空白组件。
推荐阅读
- c - 如何测试 _Static_assert 是否已定义?
- html - Outlook 365 的 HMTL 代码呈现问题
- android - Android - 使用公共 crt 和私有 pem 文件连接到后端服务器
- javascript - 如何修复 CSS 中段落文本的文本溢出?
- c# - 如何在字符串中包含数字而不转换为另一种语言(例如阿拉伯语)
- vb.net - 将面板从winform中取出并使其可移动
- html - vuetify 中的垂直表头
- jmeter - CSV 文件中的 7000 多条记录,用于 JMeter 测试计划中的 100 个线程
- python - 使用 Here API 服务计算斜率的问题
- flutter - 如何在颤动中将自定义属性添加到网格视图