只需严格控制全局级别安全选项(客户端类创建等)、类级别安全选项(例如,您可以禁用客户端删除 _Installation 条目。禁用所有类的用户字段创建也很常见。 ),最重要的是,请注意 ACL。
通常我使用 beforeSave 触发器来确保 ACL 始终正确。因此,例如,_User 对象是恢复电子邮件所在的位置。我们不希望其他用户能够看到彼此的恢复电子邮件,因此 _User 类中的所有对象都必须仅对用户进行读写设置(public read false 和 public write false)。
这样只有用户自己可以篡改自己的行。其他用户甚至不会注意到该行存在于您的数据库中。
在某些情况下进一步限制这一点的一种方法是使用云功能。假设一个用户可以向另一个用户发送消息。您可以将其实现为一个新类 Message,其中包含消息的内容,以及指向发送消息的用户和将接收消息的用户的指针。
由于发送消息的用户必须能够取消它,并且由于接收消息的用户必须能够接收它,因此两者都需要能够读取该行(因此ACL必须对它们都具有读取权限)。但是,我们不希望它们中的任何一个篡改消息的内容。
所以你有两种选择:要么创建一个 beforeSave 触发器,在提交之前检查用户尝试对此行所做的修改是否有效,或者你设置消息的 ACL 以便没有人拥有写权限,然后你创建云功能验证用户,然后使用主密钥修改消息。
重点是,您必须为应用程序的每个部分都考虑这些因素。据我所知,没有办法解决这个问题。