Безопасное использование пространства имен приложения GAE

Я хотел бы иметь сопоставление пользователей с учетными записями , а затем перенаправлять пользователей на пространство имен , соответствующее их учетной записи.

Посмотрев на appengine_config.py из предлагаемого примера , кажется, есть несколько предлагаемых способов определения каким должно быть пространство имен, т.е.

  1. Имя сервера
  2. Домен Google Apps
  3. Cookie

Я хотел бы, чтобы пространства имен выбирались на основе поиска в хранилище данных. т.е.

namespace = user.account.name

Для некоторого объекта пользователя , который связан с учетной записью , у этой учетной записи есть поле имя . Я предложил несколько способов для этого:

  1. поиск в хранилище данных по каждому запросу
  2. поиск в кэше памяти по каждому запросу (возврат к хранилищу данных по истечении срока действия кэша памяти)
  3. безопасные данные cookie

Поиск в хранилище данных будет два медленных. Есть ли такое резервирование при поиске в кэше памяти? например, memcache.get ('nslookup:% s'% user_id) , учитывая user_id . (Я полагаю, что объект users работает должным образом в appengine_config.py ).

В качестве альтернативы, для решения этой проблемы можно использовать безопасный файл cookie. Меня не устраивает безопасность флага «Безопасный» (т.е. принудительное использование SSL). Однако я не уверен, как лучше всего защитить данные в файле cookie. Я полагаю, что симметричное шифрование с подписью с PyCrypto с использованием секретного ключа в GAE - это один из способов начать работу по этому пути. Хотя этот шаблон был проверен , я был бы благодарен за любые мысли по поводу этого предлагаемого решения, в частности.

Защищенные файлы cookie не кажутся лучшим путем с идеалогической точки зрения; Я уже ожидаю, что у меня будет личность пользователя, все, что мне нужно, это сопоставление пользователя с его учетной записью - нет логической основы для шифрования, отправки, хранения, получения и дешифрования этого сопоставления при каждом запросе. Параметры кэша памяти кажутся лучшими из трех, но я Буду благодарен за мысли и вклад. Единственная причина, по которой я могу использовать безопасные файлы cookie, - это производительность или, как вариант, если доступ к кэшу памяти был недоступен в appengine_config.py .

Мысли, вводные данные и возражения против моих предположений приветствуются.

Спасибо за внимание.

Брайан

1
задан Community 23 May 2017 в 10:32
поделиться

1 ответ

Я думаю что безопасные файлы cookie — это то, что нужно, потому что они достаточно быстры. Базовая реализация, извлеченная из Tornado, находится здесь (вам нужен только класс SecureCookie, и вы можете игнорировать «сеанс»):

http://code.google.com/p/webapp-improved/source/browse/extras/ session.py#104

1
ответ дан 2 September 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: