解析CLP / ACL会导致beforeSave触发器出现问题

时间:2015-10-19 18:12:12

标签: security parse-platform cloud-code before-save

感谢您的光临。

我有一个班级,让我们打电话给Class1,我用来给用户提供我的应用折扣/优惠券。当用户完成注册过程时,我创建一个对象并将指针存储在用户上。

我想给这个类CLP权限,以便公众可以创建,但不能写入此对象。让它只是我在内部使用的东西。

我的问题是该类有几个无法定义的数组,或者其他云函数最终会在尝试读取这些值时抛出错误。我为该类设置了一个beforeSave()触发器,并使用了主密钥,但是没有保存该对象,因此我的整个用户在注册结束时保存不起作用。如何解决这个问题,同时确保我的对象安全,并确保用户不能免费窃取我的所有应用程序服务?

这是我的beforeSave触发器:

Parse.Cloud.beforeSave("Class1", function(request, response)
{
    Parse.Cloud.useMasterKey();
    var emptyArray = [];
    class1 = request.object;
    if( class1.isNew() )
    {
        class1.set("array1", emptyArray);
        class1.set("array2", emptyArray);
        class1.set("array3", emptyArray);
    }
    response.success();
});

1 个答案:

答案 0 :(得分:0)

所以我猜你不能使用主密钥来覆盖beforeSave触发器中的CLP / ACL内容......虽然它有意义,因为这将完全打败这一点。

但是,如果您提供公共创建访问权限,则可以填充任何初始数据,如果没有更新访问权限,则无法更新它。所以,显而易见的答案是在创建对象时和保存之前在客户端设置这些参数。