4

是否可以在 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 的全局设置。

4

3 回答 3

1

If you don not want to use secure in your app.yaml you can accomplish this with webapp2. https://webapp2.readthedocs.io/en/latest/guide/routing.html#restricting-uri-schemes

And here is a working code eaxmple: How to use WSGI to reroute a user from http to https

于 2012-10-11T19:50:40.260 回答
0

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

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

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

该案例甚至还有文档示例。它与我的完全相同,但我删除了重定向。

于 2020-12-20T19:07:11.750 回答
-1

我不相信这是可能的。但是,我认为您可以通过重构您在 app.yaml 中定义的 URL 来缓解该问题。

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

像这样的东西会起作用:

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

- url: /.*
  script: users_handler.app
  secure: always

这样,您只需为您的应用程序指定几个处理程序,并且您不太可能错过设置安全:始终在添加新 URL 或设置时。

希望有帮助!

于 2012-10-11T08:25:52.710 回答