appengine более безопасная маршрутизация dispatch.yaml к модулям / сервисам

Это основной вопрос проверки смысла, так как я развертываю несколько новых модулей:

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/*"? В случае, если другие модули могут использовать /mobile/ в их URL-адресах и где-то случайно mobile-frontend?

Что делать, если у меня есть доменные имена, кроме .com например .io?

1 ответ

Решение

Да, это может считаться более безопасным, если смотреть на него.

Для дополнительного .io (или другие) домены, вы можете добавить правило для каждого из этих суффиксов:

- url: "*.com/mobile/*"
  module: mobile-frontend
- url: "*.io/mobile/*"
  module: mobile-frontend

Примечание: на самом деле вам не нужно указывать правила для default модуль - все запросы, не соответствующие каким-либо правилам в файлах отправки, по умолчанию направляются на default модуль, делающий такие правила излишними. Вы можете проверить это, сделав запрос, не соответствующий ни одному из ваших dispatch.yaml правила и смотреть default логи модуля.

Другие вопросы по тегам