如何阻止AppEngine的_ah / start和_ah /停止路由对外界的可见性

时间:2017-05-14 23:55:19

标签: google-app-engine app-engine-flexible

我有_ah / start和_ah /停止我的' Flexible'应用程序。我知道GAE容器会在应用程序启动时调用这些端点,并且正在关闭。

在我部署了我的应用程序之后,我可以在舒适的沙发上自己点击它们。 这当然没有意义,因为随机的陌生人不能成为应用实例出现时的仲裁者。如何配置AppEngine以阻止这两条路由发布到外部世界?或者是在我的工作中执行这两条路线来检查IP地址或只查找GAE可以发送的标题?

2 个答案:

答案 0 :(得分:1)

基于此页面: https://cloud.google.com/appengine/docs/flexible/go/how-requests-are-handled

当请求进入GCP时,将删除与X-Google-*X-Appengine-*匹配的标头。然后,Appengine可以添加与这些模式匹配的标头,因此如果您的处理程序检测到任何此类标头,我认为可以安全地假设请求来自GAE而不是某个随机客户端。

你可以转储你得到的所有标题,看看是否有任何有趣的标题,然后从公共客户端尝试发送请求并设置一个带有一些值的标题,看看它是否先被清理然后再由GAE设置。任何此类标题必须首先进行清理,否则任何人都可以将其发送到您的应用。

我不会依赖IP地址。

答案 1 :(得分:1)

因此flex不使用/ _ah / *路径,因此不会隐藏它们。遗憾的是,我们的文档中存在不一致之处。这里正确记录了https://cloud.google.com/appengine/docs/flexible/python/migrating,但(目前)https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build不正确。文档更新正在审核中,不久将公布。

为混乱道歉。