Google app engine 从App Engine';发布密钥是否安全;什么是NDB?

Google app engine 从App Engine';发布密钥是否安全;什么是NDB?,google-app-engine,app-engine-ndb,Google App Engine,App Engine Ndb,我有一个RESTfull服务来存储和检索JSON。有效载荷存储在NDB中,因此为了访问实体,用户必须提供密钥。在实体创建时返回ndb.Model.key().urlsafe()是否安全可靠,还是应该开发自己的唯一ID 像往常一样,这要看情况而定。如果您将此密钥返回给用户,他们可以找到该对象的实体名称和标识符。如果您在将来的请求中也接受来自用户的这些密钥,则它们可以构造一个指向数据存储中任何对象的密钥,因此您必须在加载对象以获取它们传递给您的密钥之前执行任何必需的权限/类型检查 还有一个问题是,如

我有一个RESTfull服务来存储和检索JSON。有效载荷存储在NDB中,因此为了访问实体,用户必须提供密钥。在实体创建时返回ndb.Model.key().urlsafe()是否安全可靠,还是应该开发自己的唯一ID

像往常一样,这要看情况而定。如果您将此密钥返回给用户,他们可以找到该对象的实体名称和标识符。如果您在将来的请求中也接受来自用户的这些密钥,则它们可以构造一个指向数据存储中任何对象的密钥,因此您必须在加载对象以获取它们传递给您的密钥之前执行任何必需的权限/类型检查


还有一个问题是,如果您以后决定更改(比如)存储这些模型的方式,那么您会有点被这样一个事实所困扰,即您已经通过向用户发送NDB密钥公开了实现细节。如果您担心用户长时间持有这些标识符,那么生成您自己的唯一ID可能会更好。

这里有一个链接,指向讨论此问题的文档: