在没有主密钥的情况下禁用对Parse-server的请求

时间:2017-05-09 05:53:34

标签: parse-platform

是否可以在没有主密钥的情况下禁用发送到Parse的请求?我只想通过我的自定义后端访问Parse,而不是让用户直接访问。是否公开阅读'在User类上设置意味着任何人都可以读取该类中的记录?如果是这样,为什么这是违约 - 不会违反良好的安全措施?

谢谢, 丹尼尔

1 个答案:

答案 0 :(得分:0)

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

  1. 创建用户 - 每个用户必须拥有用户名和密码,并在创建解析对象时确保只有此特定用户创建/读取/删除并更新它们。您必须确保在创建对象时为该用户创建ACL,以便只有该用户才能修改和读取该对象。您可以在此处阅读有关解析服务器安全性和ACL的更多信息:http://docs.parseplatform.org/rest/guide/#security

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

  3. 您可以在此处详细了解云代码: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;
    }