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

时间:2012-10-11 06:39:15

标签: 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: always

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

3 个答案:

答案 0 :(得分:1)

如果您不想在app.yaml中使用安全,则可以使用webapp2完成此操作。 https://webapp2.readthedocs.io/en/latest/guide/routing.html#restricting-uri-schemes

这是一个工作代码eaxmple:How to use WSGI to reroute a user from http to https

答案 1 :(得分:0)

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

所要做的就是将其添加到 app.yaml 中:

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

甚至还有documentation example with that case。和我的完全一样,但是我去掉了重定向。

答案 2 :(得分:-1)

我不相信这是可能的。但是,我认为您可以通过重新调整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或设置时。

希望有所帮助!