客观化 Web 安全密钥的使用
Objectify Web Safe Key Usage
我正在使用 Objectify
从 App Engine 数据存储区存储和检索数据。
密钥的字符串版本是根据数据存储对象 ID 创建的。
public String getWebsafeKey() {
return Key.create(UserData.class, id).getString();
}
websafeKey
用于从 Datastore 获取 UserData 对象。
Key<UserData> userDataKey = Key.create(websafeKey);
UserData userData = ofy().load().key(userDataKey).now();
在我们的单元测试中,当 websafeKey
稍微更改时,用户数据 class 仍然可以检索。
已通过网络安全密钥 - agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDC
实际的网络安全密钥 - agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDA
这是已知的限制还是可以解决?
websafeKey
是 base64 编码的字符串。
不知怎的
agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDC
&
agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDA
解码为 jj~c2hqualityrMovie
我正在使用 Objectify
从 App Engine 数据存储区存储和检索数据。
密钥的字符串版本是根据数据存储对象 ID 创建的。
public String getWebsafeKey() {
return Key.create(UserData.class, id).getString();
}
websafeKey
用于从 Datastore 获取 UserData 对象。
Key<UserData> userDataKey = Key.create(websafeKey);
UserData userData = ofy().load().key(userDataKey).now();
在我们的单元测试中,当 websafeKey
稍微更改时,用户数据 class 仍然可以检索。
已通过网络安全密钥 - agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDC
实际的网络安全密钥 - agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDA
这是已知的限制还是可以解决?
websafeKey
是 base64 编码的字符串。
不知怎的
agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDC
&
agxqfmMyaHF1YWxpdHlyEgsSBU1vdmllGICAgJDSioELDA
解码为 jj~c2hqualityrMovie