gpt4 book ai didi

api - 解析用户对象 ACL

转载 作者:行者123 更新时间:2023-12-04 11:23:23 26 4
gpt4 key购买 nike

我是解析新手,并且对解析用户“表”中数据的安全性有疑问。我想将其他数据与用户数据一起存储。例如,电话号码。但默认情况下,parse 将用户表设置为对任何人都具有读取权限。因此,如果有人只是点击我的解析 api,他们将能够获得所有用户及其电话号码的列表。显然这不是很安全。那么我应该设置用户对象,以便任何人都无法读取它们吗?或者我应该将我的详细信息存储在不同的表中吗?相关,我也认为任何人都能够基本上转储我所有用户的默认列是很奇怪的。现在任何拥有我的 API key 的人都可以获取所有用户及其电子邮件地址。我在这里错过了一些关于这是多么不安全的事情吗?

最佳答案

你的担心很有道理。 Parse 数据库的默认权限已配置为便于开发,因此无需进一步配置,任何人都可以轻松转储所有用户。不幸的是,当不同的默认设置会立即使许多应用程序更加安全时,真正的安全需要相当大的努力。

See this blog post for an example of how easy a user dump can be: https://www.webniraj.com/2013/08/01/using-the-parse-javascript-sdk-be-careful/



每个对象的 ACL 无法提供已被类级别权限拒绝的访问权限,因此即使您不想要任何可公开访问的用户数据,Parse User 类的公共(public)类级别权限也需要配置为允许 SDK 与它们交互:
  • 客户端需要公共(public)“获取”才能刷新当前用户。
  • 公开“创建”只是为了能够注册用户。
  • 需要公开“更新”才能设置用户名和密码。

  • 然后使用用户 ACL 进一步限制这些公共(public)权限。内置的 User 类被分配了一个默认的 ACL,具有公共(public)读取和私有(private)读写(针对特定用户)。我不需要用户的公共(public)读取读取,因此在 afterSave 云代码 Hook 中,我将 ACL 更改为私有(private)读取。因为我打算使用 Cloud Code 进行用户更新,所以我实际上什至不想要私有(private)写访问,但 ACL 总是返回到私有(private)读写。

    我不需要搜索其他用户的能力,所以我禁用了公共(public)“查找”,这是防止所有用户信息被转储的快速修复。尽管风险较小,并且需要特定的对象 ID,但公共(public)“Get”仍然可能被滥用,这就是我从用户 ACL 中删除公共(public)读取的原因。

    更新:

    将类级别权限 (CLP) 配置为公开允许操作并不一定意味着任何数据都可以公开访问。这些 CLP 指定可以从任何客户端 SDK 对数据库的每个类运行哪些操作(这就是他们所说的“公共(public)”——使用“私有(private)”主 key 仍然可以覆盖所有内容)。然后,每个对象上的 ACL 指定哪些允许用户/角色读取和写入该对象。我强烈建议阅读他们关于安全性的 5 部分博客文章,以了解 CLP 和对象级 ACL 之间的交互: Parse Blog: Security

    CLP 允许您锁定客户端对数据库中整个类的访问。例如,我有一个类仅供云代码使用,所以我禁用了所有 CLP(防止任何客户端 SDK 读取或写入这些对象),然后云代码使用主 key 覆盖 CLP 以在服务器上使用.我也有面向客户但对用户私有(private)的对象。它们具有公共(public)的 Get 和 Find CLP,但使用仅针对该用户的私有(private)读写 ACL 对用户进行保护。

    Parse 最近还添加了“指针权限”,这看起来有助于限制对每个对象的“所有者”的访问,但我个人没有使用这些: Parse Pointer Permissions

    关于api - 解析用户对象 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994880/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com