我为我的客户开发了一个面板来监控他们业务的一些参数。其中只有几个将与他们的用户共享。
因此,我在React中创建了一个面板,然后添加了两个不同的角色(admin和user),它们可以访问完全不同的部分。显然,管理角色具有更高的权限,并为该角色监视更多的参数。
因此,我基本上是从文档 (配置Auth,src/authProvider.js部分)中复制代码的,它正在正常工作。但是,我能够在这两个角色之间切换,只需手动编辑角色变量到localStorage。
我的意思是,我以用户的身份登录,打开开发工具,转到本地存储,手动将role=user更改为role=admin,刷新,并且能够查看为管理角色分配的部分。
我是不是做错了什么(这很可能,因为这是我的第一个项目与反应-管理)?或者是某种安全问题?
我认为问题应该出现在authProvider.js中,但是如果您认为您需要看到代码的任何其他部分,那么显示它就没有问题。
提前谢谢你的帮助。
发布于 2019-04-03 17:04:54
如果您没有动态地填充参考资料中的角色,那么它的可读性和暴露‘安全风险’都是不考虑的。您可以很容易地看到您正在交谈的所有API,并开始处理这些API。所有这些都不会更改本地存储中的值。但是,如果您的API没有强制执行角色检查.这是个更大的问题。任何知道这个诀窍的人都会得到数据。毕竟,根据已知的目标创建请求是很简单的。(我知道api上的验证角色在某种程度上违背了JWT的无状态性质,但在许多情况下,像这样的情况是必要的)
附带示例,但就像所有示例一样,它们没有告诉您将其用于生产。当然,通过代码分裂或动态加载资源,可以更难在前端找到有关提升角色的信息,但不要忘记后端。
https://stackoverflow.com/questions/55499828
复制相似问题