gpt4 book ai didi

javascript - 如何使用 Express.js 将 API 访问限制为仅授权域?

转载 作者:行者123 更新时间:2023-12-01 15:11:23 24 4
gpt4 key购买 nike

我正在为我的 Node.js/Express.js 应用程序设置一层安全性,我想限制对 authlist 的访问。 (授权列表)域。

NB The opposite of an authlist is a denylist.



破败:
  • 用户创建 Project在我的系统上。
  • 每个Project发出 Public KeySecret Key这将用于创建签名请求。
  • 此外,任何给定 Project 的管理员需要提供 authlist他们希望能够访问给定 Project 的 API 的域.这是在基于 Web 的控制台中完成的,而不是作为每个请求的一部分。
  • 当 API 收到请求时,req.get('origin')用于确定请求的源域。
  • 根据 authlist 检查原点并相应地允许或拒绝。

  • 在代码 :
    var app = require('express');

    app.post('/my-api-endpoint', function(req,res) {

    var originDomain = req.get('origin'); /// e.g. mysite.com
    /// Origin is then checked against the authlist array of domains

    });

    问题
  • 关于域来源,我需要注意哪些问题
    欺骗?
  • 这是一个有值(value)的安全功能吗?或者它很容易被欺骗以至于没有必要打扰?
  • 最佳答案

    完成您正在寻找的最佳方法是完全忘记域,并可选择允许将 IP 范围列入白名单。话虽如此,世界上一些最大的 API 甚至不使用这个安全层(即 eBay、亚马逊的 Marketplace 等)。

    不过,为了解决额外的偏执,您可以让您的客户设置子网以启动他们的自动缩放服务器,这将为他们提供一个静态 IP 范围以列入白名单。然后,只有此 IP 范围内的服务器才会被授予访问您的端点的权限。

    这是 AWS 上的一个问题,对此进行了更多解释:
    https://forums.aws.amazon.com/thread.jspa?threadID=233469

    关于javascript - 如何使用 Express.js 将 API 访问限制为仅授权域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26813053/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com