有没有办法在 GCP AppEngine 上阻止 HTTP

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

我正在尝试查找如何阻止 GCP AppEngine 的 HTTP 访问,但没有找到很多详细信息。 我感觉可能不太可能。

有人可以通过代码或网络设置来阐明这一点吗?

app-engine-flexible
2个回答
1
投票

据我了解,无法阻止 App Engine 中的 Http 访问。您可以使用 App Engine Standard 中实现的安全处理程序将 http 重定向到 https 流量。

对于 App Engine Flex,关于阻止端口 80 替代方案,您可以实施计算虚拟机并设置防火墙规则,然后重定向到 App Engine。

最后,请记住,在 App Engine 防火墙 中,您需要指定要允许或拒绝的 IP 范围,不可能拒绝实际端口。


0
投票

对于遇到此问题并寻求快速解决方案的用户,您可以利用默认 Google App Engine (GAE) 代理提供的

X-Forwarded-Proto
标头来确定客户端使用的原始协议(HTTP 或 HTTPS)。

X-Forwarded-Proto [http | ] https] 根据客户端用于连接到应用程序的协议显示 http 或 https。 Google Cloud Load Balancer 终止所有 https 连接,然后通过 http 将流量转发到 App Engine 实例。例如,如果用户通过 https://PROJECT_ID.REGION_ID.r.appspot.com 请求访问您的网站,则 X-Forwarded-Proto 标头值为 https。

GAE 特定标头

事实上,您可以在应用程序中实现一个过滤器来阻止 X-Forwarded-Proto 标头值为 http 的所有请求。这可确保仅处理 HTTPS 请求,从而有效阻止应用程序级别的任何不安全 HTTP 流量,同时允许通过 Google App Engine (GAE) 代理路由安全流量。

确保 app.yaml 处理程序中的安全变量设置为可选,否则 App Engine 将根据其值自动将传入请求重定向到 HTTP 或 HTTPS。它的默认值是可选的

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