为什么网络安全字符串用于访问 google 端点框架中的数据?
Why websafe string are used to access Data in google endpoints framework?
我在 google 端点框架 (Java) 上学习了 udacity 课程 ud859。为了访问云数据存储中的数据,我使用了 Objectify。实体 类 按以下方式定义
@Entity
public class Profile{
@Id
Long id;
}
此 "id" 属性用于唯一标识每个配置文件,并使用 ObjectifyFactory 实例以随机方式分配。
因此,要访问配置文件数据,可以形成一个端点“/profile/{id}”
此外,此 ID 可用于使用 Key.create(Profile.class,id);
制作密钥此方法 returns 类型 Key<Profile>
的实例。它的方法之一 key.getString()
returns 表示该配置文件对象的网络安全字符串。
传授的惯例是使用 websafestring 通过 web 访问和共享 Object 的数据。
我想了解 websafestring 如何在网络上安全以及使用通常使用的 URL 类型“/profile/{id}”的缺点是什么
我想这里考虑的是安全性,但实际上并没有太大区别,因为本例中的网络安全密钥字符串是 base64 编码但未混淆,因此很容易获得数字 ID。如果您想对用户隐藏数据库 ID,您还需要加密密钥。
网络安全字符串对 Key
的整个祖先进行编码,这是查找实体所必需的。一个简单的用例可以将 ID 定义为 Key(MyKind, 1234L)
。现在,如果您的实体定义了 MyParentKind
的父项,那么它的全键可能更像 Key(MyKind, 1234L, MyParentKind, 5678L)
。祖先案例中的查找需要实体的 ID 以及所有祖先的 kind + id 对。网络安全密钥将所有这些信息编码为一个字符串。
我在 google 端点框架 (Java) 上学习了 udacity 课程 ud859。为了访问云数据存储中的数据,我使用了 Objectify。实体 类 按以下方式定义
@Entity
public class Profile{
@Id
Long id;
}
此 "id" 属性用于唯一标识每个配置文件,并使用 ObjectifyFactory 实例以随机方式分配。
因此,要访问配置文件数据,可以形成一个端点“/profile/{id}”
此外,此 ID 可用于使用 Key.create(Profile.class,id);
制作密钥此方法 returns 类型 Key<Profile>
的实例。它的方法之一 key.getString()
returns 表示该配置文件对象的网络安全字符串。
传授的惯例是使用 websafestring 通过 web 访问和共享 Object 的数据。
我想了解 websafestring 如何在网络上安全以及使用通常使用的 URL 类型“/profile/{id}”的缺点是什么
我想这里考虑的是安全性,但实际上并没有太大区别,因为本例中的网络安全密钥字符串是 base64 编码但未混淆,因此很容易获得数字 ID。如果您想对用户隐藏数据库 ID,您还需要加密密钥。
网络安全字符串对 Key
的整个祖先进行编码,这是查找实体所必需的。一个简单的用例可以将 ID 定义为 Key(MyKind, 1234L)
。现在,如果您的实体定义了 MyParentKind
的父项,那么它的全键可能更像 Key(MyKind, 1234L, MyParentKind, 5678L)
。祖先案例中的查找需要实体的 ID 以及所有祖先的 kind + id 对。网络安全密钥将所有这些信息编码为一个字符串。