【发布时间】:2019-12-04 03:23:51
【问题描述】:
我是 Javascript 的新手,并且一直在使用全局布尔 hasAccessPermissions 来从 API 检索数据以存储用户是否具有管理员权限。 有了这些数据,我只向管理员用户显示屏幕的一些元素。但是,我被告知这是一个安全漏洞,因为非管理员用户可以访问此代码,并且可以通过在本地编辑我的布尔值来查看和更改他所看到的内容。
如何在 JS 中“正确”隐藏用户访问权限的 UI 元素?
【问题讨论】:
-
JS 在浏览器中运行,因此并不安全。您需要在服务器上处理用户访问
-
我考虑过创建两个相似的网页,一个具有管理功能,另一个完全相同但没有它们。然后在服务器端处理哪个页面将呈现给用户。但这听起来更像是一种解决方法,而不是我的实际解决方案……这就是为什么我决定从社区中寻找替代方案
-
用户可以查看和修改浏览器中运行的所有内容。例如,您的
hasAccessPermissions布尔值可以简单地在浏览器控制台中更改。显然我不知道你的架构是什么,所以很难提出建议。如果您使用的是 API,它可以处理用户身份验证/请求吗?这样,即使用户修改 DOM 以显示某些管理按钮,触发的 API 请求也不会执行,除非它们经过身份验证
标签: javascript security