是否设置登陆页面的身份验证以便通过访问限制从代理获取数据?

是否设置登陆页面的身份验证以便通过访问限制从代理获取数据?

想象一下这样的场景:您的客户希望您在为他们设置的登录页面上实现对外部 API 的调用。外部 API 基于合同和通过该合同获得的 API 密钥工作;因此您不得在fetch()前端调用中公开 API 密钥。

因此,您现在有权实现一个 Docker 实例,该实例充当中介服务器,将您的 LP 的fetch()调用连接到外部 API,这样,对于每个请求,您都会有以下流量:

client --> Docker container --> API --> Docker container --> client

为了保持高度安全,我现在想知道从客户端到 Docker 容器的请求的身份验证的最佳方法是什么。授权是通过在页面加载时传递给客户端的 CSRF 令牌实现的;初始身份验证成功后。

鉴于登陆页面没有登录系统,我们不能依赖非 HTTP / 第三方 cookie,我想到只允许来自部署登陆页面域的请求进入 Docker 容器;但我不知道 A) 这是否可行(我想到 Docker 容器Acces-Control-Allow-Origin上的配置?),以及 B) 这是否安全?我特别想知道 B),因为伪造 referrer 标头之类的东西非常容易,所以我想知道请求来源的域名是否也很容易被伪造?

如果我也理解正确的话,通过标题提供的规则Access-Control-Allow-Origin仅在浏览器中强制执行,例如简单的 HTTP 客户端可以绕过/忽略它;对吗?

我也考虑过基本身份验证,但我更喜欢某种不会在客户端代码中公开任何内容的身份验证,因为在这种情况下我需要向 js 提供身份验证令牌。

鉴于 Docker 容器在 apache 上运行,我认为此用例最严格的解决方案是通过以下方式限制对已部署 LP 的 IP 的访问:,使用类似。我知道这更像是访问限制与身份验证;但我认为这是这种不向客户端公开任何内容的登陆页面场景的最佳解决方案?

相关内容