如何通过nginx反向代理服务器限制对RESTful API的访问?

问题描述 投票:0回答:1

我有一个网页,它将被提供给客户端,当客户端点击该网页时,它将把请求发送到nginx反向代理服务器,后者将把请求发送到正确的RESTful API。nginx和RESTful API在另一台服务器上。

我如何使用nginx来限制只对网页进行访问,使用户不能直接进入API。

我已经设置了CORS,但我被告知CORS可以被绕过(一个例子是Postman)。

我已经尝试过使用(都是在nginx配置上)。

if ($host != domain.of.webpage) {
    return 444;
}

另一种方法。

server {
    listen 443 default_server;
    listen [::]:443 default_server;
    server_name _;
    return 444;
}

还有一种。

satisfy any;

allow xx.xx.xx.xx/xx;
allow xxxx:xxxx:xxxx:xxxx:xxxx/xx;
deny all;

所有限制访问,但也对网页本身。我知道最后一种方法是行不通的,因为访问它的客户端不在主机上,所以IP地址是没有意义的。

有什么其他方法可以尝试吗?

reverse-proxy nginx-config restrict
1个回答
0
投票

parzival在问题的评论中给出了答案。我把它复制到下面。

听起来你是说你有一个API暴露在公共互联网上,被公共互联网上的一个网页使用,你想限制访问,使API只能被该网页上的脚本使用。这是否准确?如果是,你无法真正做到这样限制访问。最多,你可以依靠混淆技术来增加难度。- parzival Mar 29 '19 at 22:17

© www.soinside.com 2019 - 2024. All rights reserved.