将 Parse Server 减少为仅 Parse Cloud
Posted
技术标签:
【中文标题】将 Parse Server 减少为仅 Parse Cloud【英文标题】:Reducing Parse Server to only Parse Cloud 【发布时间】:2016-11-18 13:44:19 【问题描述】:我目前正在使用最新的自托管 Parse Server,但我遇到了一些安全问题。
目前,对路由 /classes
的调用可以检索任何表中的任何对象,即使我可能希望一个对象公共可读,我不想显示该对象的所有参数。简而言之,我不希望在任何情况下都检索数据库,我想禁用除 Parse Cloud 代码之外的“一切”。也就是说,我可以调用我自己的函数,但不能使用客户端(android、ios、C#、javascript...)来检索数据。
有没有办法做到这一点?我一直在深入寻找这个,试图调试一些控制器,但我没有任何线索。
非常感谢您。
【问题讨论】:
【参考方案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 会有任何改进。谢谢 ! :)以上是关于将 Parse Server 减少为仅 Parse Cloud的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 iptables 和 parse-server (Parse Server) 将 HTTP 重定向到 HTTPs
无法将图像从 PARSE 加载到 PFTableViewCell 的 imageView 属性中
将 Parse Cloud Code 与 Parse Server Heroku 一起使用