将解析服务器减少为仅解析云

时间:2016-11-18 13:44:19

标签: cloud-code parse-server parse-cloud

我目前正在使用自托管解析服务器,但我面临一些安全问题。

目前,对路由/classes的调用可以检索任何表中的任何对象,即使我可能希望一个对象公共可读,我不想显示该对象的所有参数。简单地说,我不想在任何情况下检索数据库,我想禁用"所有内容"除了Parse Cloud代码。这就是说,我可以运行自己的函数调用,但不能使用客户端(Android,iOS,C#,Javascript ......)来检索数据。

有没有办法做到这一点?我一直在深入研究这个问题,尝试调试一些控制器,但我没有任何线索。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

tl; dr:将所有对象的ACL设置为仅在使用主密钥时可读,然后告知Cloud Code中的查询在查询数据时使用MK

因此,在不更改Parse Server本身的情况下,您可以使用ACL并仅允许特定用户访问对象。然后,您将在“Cloud Code”中以“该用户”身份“登录”,并能够访问所有对象。

作为旧方法,操作系统分析服务器中没有Parse.Cloud.useMasterKey(),您必须将参数useMasterKey传递给正在运行的查询,该查询应该针对此特定请求执行操作,将绕过ACL / CLP。 Parse Server的Wiki也有一个例子。

为方便起见,这里有一个来自Wiki的简短代码示例:

Parse.Cloud.define('getTotalMessageCount', function(request, response) {
    var query = new Parse.Query('Messages');
    query.count({
        useMasterKey: true
    }) // count() will use the master key to bypass ACLs
    .then(function(count) {
        response.success(count);
    });
});