node.js - 授权规则:如何只允许以间接方式访问资源?
问题描述
我正在我的 Node JS 服务器中开发一些授权规则 - 一个中间件。目前,我的服务器只执行身份验证过程。
注册新用户时,我通过将所有允许的路径存储在您的访问令牌中来指定该用户可以访问哪些屏幕。它在客户端工作得很好。现在,我想改进我的服务器保护,使其免受恶意用户的侵害,这些恶意用户可能拥有访问令牌并对确实不允许使用该令牌的端点执行不正确的请求(例如,通过使用邮递员)。
但在这里,一个问题出现了。我的大部分视图都是通过服务从其他路径获取数据。因此,当服务 A、B 和 C(需要填写该视图)执行其请求时,被授权仅访问项目详细信息视图 (my-host/project-detail) 的用户将面临麻烦。我的授权中间件将阻止所有服务,并发送 403 HTTP 状态(看图片)。
我想通过发送一些请求参数“告诉服务器”来解决这个问题:嘿,这个请求是间接发出的,我不是试图直接访问这个资源(这意味着被原始视图本身访问该服务属于)。例如https://my-host/service-b?directly=false
但是绕过很简单,恶意用户只需将此参数设置为true或false即可轻松访问资源。有人会对我的上下文有一些解决方案/提示吗?
太感谢了。
解决方案
推荐阅读
- c# - 获取解决方案中的所有启动项目
- mysql - MySQL:从发件人或收件人获取最新消息并在 ID 上左连接
- python-3.x - 从字符串中获取重复次数最多的字母
- scala - 如何准备数据以应用 RandomForest?
- ruby - 在 Ruby 中转义 URL 片段时避免双重编码
- javascript - NodeJS,包,nodemon
- powerbi - ADLS Gen2 中的 Power BI 和镶木地板
- java - 编译失败无法访问Terminable java
- mongodb - @nestjs/graphql 错误:您需要为 DemandResolver#demand 参数 #0 提供显式类型
- arrays - 在 Postgres 中重塑数组?