2017-05-09 15 views
0

是否可以禁用没有主密钥发送给分析的请求?我只想通过自定义后端访问Parse,而不是直接访问用户。在用户类上设置的公共“读”是否意味着任何人都可以阅读该类中的记录?如果是这样,为什么这是默认 - 这不会违反良好的安全做法?禁用对没有主密钥的分析服务器的请求

感谢, 丹尼尔

回答

0

公共读取意味着任何人都与你的API密钥可以读取你的解析服务器的用户集合。 Api密钥并不是保护你的应用程序的最佳方法,因为任何人都可以通过“嗅探”你的网络请求来了解它。 为了保护和提供访问权限,您可以使用ACL来保护您的对象,这允许您为特定用户(登录的用户)或特定角色创建访问权限。所以,你有两个选择:

  1. 创建用户 - 每个用户都必须用户名和密码,当你创建你的解析对象确保只有这个特定的用户创建/读取/删除和更新它们。您必须确保在创建一个对象时为该用户创建ACL,以便只有该用户才能修改和读取该对象。你可以在这里阅读更多关于解析服务器的安全性和访问控制列表的:http://docs.parseplatform.org/rest/guide/#security

  2. 使用解析云代码 - 在云代码有useMasterKey的一个很好的功能,它提供完全访问解析服务器,以便对任何对象您运行的每个操作(通过JS SDK),您还可以设置useMasterKeytrue然后parse-server将忽略所有ACL,并将为您执行查询。 useMasterKey功能只能在云代码上下文中使用,因此很安全。如果您想提供更高级别的安全性,您可以使用主用户(来自第1部分)运行云代码功能,并在云代码内部检查用户会话,因此如果会话为空,则可以返回错误。

你可以在这里阅读更多关于云计算代码:http://docs.parseplatform.org/cloudcode/guide/

这是验证用户会话代码:

if (!request.user || !request.user.get("sessionToken")) { 
    response.error("only logged in users are allowed to use this service"); 
    return; 
} 
+0

谢谢,但我仍然对如何不是很清楚锁定解析响应没有主密钥的请求?我正计划运行自己的后端,并通过它访问它。你会推荐在自定义的NodeJS后端上使用云代码吗? – DVassilev

+0

是的,因为它为您节省了大量的安装时间,并且考虑到安全性和更多 –

+0

以及如何在不使用主密钥时禁用对请求的访问? – DVassilev