使用parse.com实现云功能的安全性

时间:2015-11-19 14:23:47

标签: javascript security parse-platform

我正在使用parse.com并着眼于确保我的应用安全。我想我已经很好地理解了ACL,CLP和Cloud功能的基本原理。我的主要问题来自the Part IV of the parse.com blog.。通过使用云功能,我应该保护我的应用程序,但是什么阻止有人多次调用此云功能?   示例是云中的以下定义:

1 = {0}

这应该在我的JS代码中用作:

Parse.Cloud.define("like", function(request, response) {
  var post = new Parse.Object("Post");
  post.id = request.params.postId;
  post.increment("likes");
  post.save(null, { useMasterKey: true }).then(function() {
    response.success();
  }, function(error) {
    response.error(error);
  });
});

现在,如果有人看了我的代码,他会很快理解发生了什么,只是多次调用/运行这个云函数,并且帖子上的喜欢会提升。这在这里没什么大不了的,但是这可能导致我相信更复杂的应用程序中的安全漏洞?

1 个答案:

答案 0 :(得分:0)

在幕后,Parse肯定有适当的负载平衡措施来限制来自单一来源的连续请求,通常是为了提高服务质量以及检测和防止DDos攻击。

您可以使用优秀的设计来防止您提供的方案。对于处理来自单个用户的多个喜欢,您可以限制用户只能使用一次。一般情况下,您不允许任何人直接操纵您的计数器,只能作为用户操作的副产品来增加/减少此计数器。

让我们说用户喜欢你应用中的照片。在您的数据库中,每个用户对象都有Like关系(有点像高性能列表),可以跟踪到目前为止他喜欢的照片。每当他喜欢一张照片时,你都要浏览这个列表,如果照片不在那里,你可以将这张照片添加到这个关系中,然后将照片放到照片中。当他不喜欢这张照片时,你会表现相反。这样,不仅您的应用可以可靠地扩展,您的计数器也不会被恶意用户滥用。