从App Engine NDB发布密钥是否安全?

时间:2013-12-21 02:37:49

标签: google-app-engine app-engine-ndb

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

1 个答案:

答案 0 :(得分:1)

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

还有一个问题是,如果您以后决定要更改,比如说,如何存储这些模型,您会因为通过向用户发送NDB密钥而暴露实现细节这一事实而感到困惑。如果您担心用户长时间持有这些标识符,那么生成您自己的唯一ID可能会更好。