首页 > 解决方案 > 授权规则:如何只允许以间接方式访问资源?

问题描述

我正在我的 Node JS 服务器中开发一些授权规则 - 一个中间件。目前,我的服务器只执行身份验证过程。

注册新用户时,我通过将所有允许的路径存储在您的访问令牌中来指定该用户可以访问哪些屏幕。它在客户端工作得很好。现在,我想改进我的服务器保护,使其免受恶意用户的侵害,这些恶意用户可能拥有访问令牌并对确实不允许使用该令牌的端点执行不正确的请求(例如,通过使用邮递员)。

但在这里,一个问题出现了。我的大部分视图都是通过服务从其他路径获取数据。因此,当服务 A、B 和 C(需要填写该视图)执行其请求时,被授权仅访问项目详细信息视图 (my-host/project-detail) 的用户将面临麻烦。我的授权中间件将阻止所有服务,并发送 403 HTTP 状态(看图片)。

在此处输入图像描述

我想通过发送一些请求参数“告诉服务器”来解决这个问题:嘿,这个请求是间接发出的,我不是试图直接访问这个资源(这意味着被原始视图本身访问该服务属于)。例如https://my-host/service-b?directly=false

但是绕过很简单,恶意用户只需将此参数设置为true或false即可轻松访问资源。有人会对我的上下文有一些解决方案/提示吗?

太感谢了。

标签: node.jssecurityauthorization

解决方案


推荐阅读