appengine 更安全 dispatch.yaml 路由到模块/服务
appengine safer dispatch.yaml routing to modules / services
这是一个基本的判断题,因为我正在部署一些新模块:
dispatch.yaml:
application: my-app
# No version required; this does routing independent of version.
dispatch:
# Default module serves the typical web resources and all static resources.
- url: "*/favicon.ico"
module: default
# Default module serves simple hostname request.
- url: "simple-sample.appspot.com/"
module: default
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
module: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
module: static-backend
用 "*.com/mobile/*"
代替 "*/mobile/*"
不是更安全吗?万一其他模块可以在他们的某个地方的 url 中使用 /mobile/
而意外地被路由到 mobile-frontend
?
如果我有 .com
以外的域名怎么办,例如.io
?
是的,从您的角度来看,它可以被认为更安全。
对于其他 .io
(或其他)域,您可以为每个后缀添加规则:
- url: "*.com/mobile/*"
module: mobile-frontend
- url: "*.io/mobile/*"
module: mobile-frontend
旁注:您实际上 不需要 指定 default
模块的规则 - 默认情况下所有不匹配调度文件中任何规则的请求路由到 default
模块,使这些规则变得多余。您可以通过发出不匹配任何 dispatch.yaml
规则的请求并查看 default
模块的日志来测试这一点。
这是一个基本的判断题,因为我正在部署一些新模块:
dispatch.yaml:
application: my-app
# No version required; this does routing independent of version.
dispatch:
# Default module serves the typical web resources and all static resources.
- url: "*/favicon.ico"
module: default
# Default module serves simple hostname request.
- url: "simple-sample.appspot.com/"
module: default
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
module: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
module: static-backend
用 "*.com/mobile/*"
代替 "*/mobile/*"
不是更安全吗?万一其他模块可以在他们的某个地方的 url 中使用 /mobile/
而意外地被路由到 mobile-frontend
?
如果我有 .com
以外的域名怎么办,例如.io
?
是的,从您的角度来看,它可以被认为更安全。
对于其他 .io
(或其他)域,您可以为每个后缀添加规则:
- url: "*.com/mobile/*"
module: mobile-frontend
- url: "*.io/mobile/*"
module: mobile-frontend
旁注:您实际上 不需要 指定 default
模块的规则 - 默认情况下所有不匹配调度文件中任何规则的请求路由到 default
模块,使这些规则变得多余。您可以通过发出不匹配任何 dispatch.yaml
规则的请求并查看 default
模块的日志来测试这一点。