我正在为我的Node.js / Express.js应用程序开发一层安全性,我希望限制对域名白名单的访问。
The Rundown:
Project
。Project
都会发出一个Public Key
和Secret Key
,用于创建已签名的请求。Project
的管理员都需要提供他们希望能够访问给定Project
的API的域名的白名单。这是在基于Web的控制台中完成的,而不是作为每个请求的一部分。req.get('origin')
用于确定请求的原始域。代码:
var app = require('express');
app.post('/API-Endpoint', function(req,res) {
var originDomain = req.get('origin'); /// e.g. mysite.com
/// Origin is then checked against the whitelist array of domains
});
问题
答案 0 :(得分:0)
完成您要寻找的内容的最佳方法是完全忘记域,并可以选择将IP范围列入白名单。话虽如此,世界上一些最大的API甚至都没有使用此安全层(例如eBay,亚马逊的Marketplace等)。
不过,为了解决额外的偏执狂,您可以让客户端设置子网来启动其自动扩展服务器,从而将静态IP地址范围加入其中。然后,只有该IP范围内的服务器才被授予访问端点的权限。
这是AWS上的一个问题,可以进一步解释这一问题: https://forums.aws.amazon.com/thread.jspa?threadID=233469