Google Appengine userId应该被视为秘密吗?

xtr*_*com 9 security google-app-engine

只是想知道通过调用返回的userId是否user.getUserId()应被视为机密,还是可以在公共URL中使用?例如,配置文件页面网址类似于http://example.com/userprofile/11901930903930,其中11901930903930是Google在Appengine上生成的userId.

这是我们用来获取userId的函数:

UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();

String id = user.getUserId();
Run Code Online (Sandbox Code Playgroud)

xtr*_*com 11

实际上,我在谷歌上发现了这个信息,结论是应该公开使用它们.

来自Google:

访问帐户信息

当用户登录到应用程序时,应用程序可以访问该用户对该应用程序发出的每个请求的帐户电子邮件地址或OpenID标识符.即使用户更改了其帐户的电子邮件地址,该应用也可以访问唯一标识用户的用户ID.

该应用还可以确定当前用户是否是该应用的管理员("开发人员").即使您未对其他用户进行身份验证,也可以使用此功能为应用程序构建管理功能.Go,Java和Python API使得将URL配置为"仅管理员"变得容易.

注意:每个用户对所有App Engine应用程序都具有相同的用户ID.如果您的应用在公共数据中使用用户ID,例如将其包含在URL参数中,则应使用添加了"salt"值的哈希算法来隐藏ID.公开原始ID可以允许某人将用户在一个应用程序中的活动与另一个应用程序中的活动相关联,或者通过强制用户登录到另一个应用程序来获取用户的电子邮件地址.

链接到页面