【问题标题】:Reducing Parse Server to only Parse Cloud将 Parse Server 减少为仅 Parse Cloud
【发布时间】:2016-11-18 13:44:19
【问题描述】:

我目前正在使用最新的自托管 Parse Server,但我遇到了一些安全问题。

目前,对路由 /classes 的调用可以检索任何表中的任何对象,即使我可能希望一个对象公共可读,我不想显示该对象的所有参数。简而言之,我不希望在任何情况下都检索数据库,我想禁用除 Parse Cloud 代码之外的“一切”。也就是说,我可以调用我自己的函数,但不能使用客户端(Android、iOS、C#、Javascript...)来检索数据。

有没有办法做到这一点?我一直在深入寻找这个,试图调试一些控制器,但我没有任何线索。

非常感谢您。

【问题讨论】:

    标签: parse-server parse-cloud-code


    【解决方案1】:

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

    因此,无需更改 Parse Server 本身,您就可以使用 ACL 并且只允许特定用户访问对象。然后,您将在您的云代码中以该用户的身份“登录”并能够访问所有对象。

    作为旧方法,Parse.Cloud.useMasterKey() 在 OS Parse Server 中不可用,您必须将参数 useMasterKey 传递给您正在运行的查询,这应该可以解决此特定请求并绕过 ACL/中电。 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);
        });
    });
    

    【讨论】:

    • 我希望将来通过独特的X-Parse-Cloud-Key 控制和管理 Parse Server 会有任何改进。谢谢 ! :)
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2019-03-06
    相关资源
    最近更新 更多