Проблемы безопасности с GAE user_id в качестве ключа хранилища данных
Хорошо известно, что единственный надежный способ обеспечить уникальное свойство в виде хранилища данных Google Cloud - это ключевое свойство. Допустим, мы создавали приложение Google AppEngine (GAE), используя API пользователей Google для аутентификации пользователей, и мы хотели создать вид под названием Profile. Для каждого пользователя может быть только один профиль. Было бы целесообразно сохранить идентификатор объекта User в качестве ключевого свойства для обеспечения этой уникальности, верно? На самом деле, в документации API Google App Engine даже говорится следующее:
Использование пользовательских значений с хранилищем данных
Идентификатор пользователя стабилен; Вы можете использовать его в имени ключа или в качестве строкового свойства. Поэтому при использовании пользовательских значений вы хотите сохранить идентификатор пользователя
Но предположим, что наше приложение должно отображать в браузере гиперссылки на эти профили пользователей. Уместно ли формировать URL с user.user_id()
строка? Не должен ли идентификатор пользователя рассматриваться как конфиденциальная информация? Учетная запись пользователя Google user_id одинакова во всех приложениях Google. Утечка в браузер кажется неправильной, но я не могу найти никаких запретов в документах GAE (если я что-то упустил).
Теперь, если идентификатор пользователя не должен быть передан клиенту, должен ли он быть хеширован? Или есть какой-то другой способ создать вид, в котором идентификатор пользователя Google должен быть уникальным?
Примечание: я в порядке, используя идентификатор пользователя в качестве ключа и сравнивая его с текущим пользователем в аутентифицированных конечных точках, например. Вопрос связан с тем, может ли он быть открыт для браузера (не кажется правильным), и если нет, то как в целом обрабатывать случаи, когда владельцу (пользователю приложения) ресурса (например, записи в блоге) необходимо быть видимым в приложении.
1 ответ
Похоже, что с Google Security все в порядке, если оно отображается через браузер
Google+ использует его в URL при отображении профиля пользователя и в качестве части URL своих сообщений.