使用parse.com实现云功能的安全性
Security with cloud functions using parse.com
我正在使用parse.com,并致力于使我的应用程序安全。我想我已经很好地理解了ACL、CLP和云功能的基本原理。我的主要问题来自parse.com博客的第四部分。。通过使用云功能,我应该保护我的应用程序,但是什么阻止了有人多次调用此云功能?示例是云中的以下定义:
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);
});
});
这应该在我的JS代码中使用为:
Parse.Cloud.run('like', {postId : theIdOfMyPost}).then(function(results){
// ok
}, function(err) {
console.log(err);
});
现在,如果有人看了我的代码,他会很快理解发生了什么,只需多次调用/运行这个云函数,帖子上的赞就会增加。这在这里没什么大不了的,但我相信这可能会导致更复杂的应用程序出现安全漏洞?
在幕后,Parse肯定有负载平衡措施来抑制来自单个源的连续请求,通常是为了提高服务质量以及检测和防止DDos攻击。
您提供的场景可以通过良好的设计来防止。为了处理单个用户的多个点赞,您限制用户只能点赞一次。一般来说,您不允许任何人直接操作您的计数器,并仅将此计数器作为用户操作的副产品来增加/减少。
假设用户喜欢你应用程序中的照片。在您的数据库中,每个用户对象都有一个Like
关系(它的行为有点像一个高性能列表),可以跟踪他到目前为止喜欢的照片。每次他喜欢一张照片时,你都会浏览这个列表,如果照片不在其中,你会将该照片添加到这个关系中,然后增加照片的"赞"计数器。当他不喜欢这张照片时,你的表现正好相反。这样,你的应用程序不仅可以可靠地扩展,你的计数器也不会被恶意用户滥用。
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- jQuery滚动功能只工作一次
- Graphiti中是否有任何工具提示功能
- React redux初始化功能,无论状态变化如何
- 在哪里可以学习ECMAScript标准中尚未包含的JavaScript功能
- 正在获取select上的功能id
- Rhino打印功能
- 使用(navigator.geolocation)检测浏览器功能错误
- 主体单击删除功能上的输入框宽度
- $.ajax后功能安全性
- 使用parse.com实现云功能的安全性