Google app engine 我可以只使用一个设置就在Google App Engine(python App)上将所有URL配置为安全的吗?

Google app engine 我可以只使用一个设置就在Google App Engine(python App)上将所有URL配置为安全的吗?,google-app-engine,python-2.7,Google App Engine,Python 2.7,在app.yaml中,是否可以确保在http上对我的应用程序的所有请求都重定向到https,而不必为我的应用程序中的每个url端点指定安全:始终 目前我正在这样做: url: /users/login script: users_handler.app secure: always url: /signin script: authentication.app secure: always url: /users/logout script: users_handler.app secure

在app.yaml中,是否可以确保在http上对我的应用程序的所有请求都重定向到https,而不必为我的应用程序中的每个url端点指定安全:始终

目前我正在这样做:

url: /users/login
script: users_handler.app
secure: always

url: /signin
script: authentication.app
secure: always

url: /users/logout
script: users_handler.app
secure: always

但是,随着新URL的添加,作为开发人员,它的风险可能会忘记指定始终安全。我宁愿只指定一个适用于我应用程序中所有URL的全局设置。

我认为这是不可能的。但是,我认为可以通过重新构造app.yaml中定义的URL来缓解这个问题

URL从顶部开始与app.yaml中的处理程序匹配。因此,您应该指定您的一次性URL,然后在底部有一个catch-all设置,该设置将所有与其他设置不匹配的URL路由到您的默认处理程序。然后,您的应用程序应该显示404页等,以查找应用程序中不存在的URL

类似这样的方法会奏效:

- url: /signin
  script: authentication.app
  secure: always

- url: /.*
  script: users_handler.app
  secure: always
这样,您只需为应用程序指定几个处理程序,就不太可能错过安全设置:总是在添加新URL或设置时


希望有帮助

如果您不想在app.yaml中使用secure,您可以使用webapp2实现这一点。


这里有一个工作代码eaxmple:

我觉得自己像个考古学家,但我还是要分享我的发现

只需将其添加到app.yaml中即可:

handlers:
- url: /.*
  secure: always
  script: auto

甚至还有。它与我的完全相同,但我删除了重定向。

第一个链接已失效:(此解决方案将创建一个新的处理程序,以捕获不存在的页面的404错误,(并确保通过SSL提供这些错误)但此“捕获所有”处理程序不执行问题所要求的操作,这将确保应用程序中所有其他现有处理程序的安全。