我使用Parse(JavaScript)开发了一个私有聊天应用程序,其中“Message”对象在两个用户的组内交换。 (这可以在以后增加以允许组中的更多用户。)用户只能是一个组的一部分。
我看到以下选项来保护对邮件的访问:
使用分析角色和ACL - 为每个组创建一个Parse Role
对象,将两个用户分配给该组,并在每个新的Message对象上设置ACL以限制read /仅对该组进行写访问。
这意味着如果我有100k用户,那么就会有50k个角色对象。我不确定这是否是预期的用例,或者这是否会产生严重的性能影响?
使用解析ACL - 对于每封新邮件,请创建一个ACL,其中包含该组中两个用户的读取权限。
自行管理安全性 - 设置类权限以禁用对“Message”的访问,编写CloudCode函数以检索当前用户或当前组的任何其他成员创建的消息对象。我可以将组成员存储在每个用户的“伙伴”1:n关系中,或者创建一个单独的“组”类。
还有其他场景吗?每个人的利弊是什么?
答案 0 :(得分:1)
以前的角色有限制(IIRC只有1个用于免费帐户,只有少数用于付费帐户),不确定是否有更多,它看起来不像。
使用与组相关的消息并基于组对象查询和限制访问可能是一种更好的方法(从查询性能的角度来看 - 尽管这确实需要进行负载测试)。
从技术上讲,任何人直接抓取您的密钥并访问API仍然可以查看所有消息,因此将角色添加到每封邮件仍然是谨慎的。 Parse有一些最近的示例代码,鼓励创建很多角色,但是应该再次测试它。