bro*_*oli 5 security rest google-app-engine reverse-proxy microservices
首先,介绍一下我们的设置:
在我们的设置中,我们有一个在default服务中带有反向代理的 Google App Engine 项目。它充当同一项目中所有其他微服务的 API 网关。这是 Google 工程师向我们推荐的。
从客户端到这些微服务的所有请求都应该通过这个网关路由,因此我们需要底层服务X-Forwarded-*在构建新 URL 时尊重标头。但是,这会导致安全问题:恶意用户可以伪造标头,使我们的应用程序调用端点位于他们自己的域中。
为了防止这种情况,底层服务必须与外部世界隔离。它们只能接受来自同一项目(即网关和其他微服务)的请求。
在 App Engine Standard 中,有一种方法可以告诉 App Engine 包含X-Appengine-Inbound-Appid验证项目的标头,但我们在 App Engine Flexible 中找不到与此类似的任何内容。特别是,迁移指南没有提到断言请求身份。
我们如何断言请求来自同一个 App Engine 项目?
在灵活的环境中这可能吗?我们希望避免实现共享秘密(可能会泄漏),或者服务必须始终与网关检查请求是否来自它们的机制:/
现在,我们必须在服务本身中验证X-Forwarded-*标头是否符合其预期格式,这首先违背了使用标头的全部目的。
| 归档时间: | 
 | 
| 查看次数: | 497 次 | 
| 最近记录: |