将非英文字符用于数据存储区的ID部分是否安全?

时间:2014-05-30 17:52:25

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

我想让我的用户可以选择在用户名中加入非英文字符。

为了简单起见(并避免微妙的错误),我想将其用户名作为其实体的ndb密钥的id部分。我的问题是,这是一种安全的方法吗?

我无法找到有关GAE数据存储区是否支持非英文字符作为密钥的id部分的信息。

1 个答案:

答案 0 :(得分:3)

直接来自马的嘴,源代码(key类):

  
      
  • 种类和字符串ID不能为空,且最长不得超过500个字节(在UTF-8编码之后,如果以Python unicode对象形式给出)。
  •   

如果使用UTF-8,您应该能够使用您想要的任何语言。另外,从doc

开始
  

下一个组件是ID(int64)或键名(str)。

' STR'如页面顶部所定义,建议接受非ASCII字符。

P.S。使用用户名作为唯一ID有一些缺点;请参阅this discussion(忽略它的SQL方面。)