【问题标题】:Do I need to store personal details encrypted in firebase我是否需要在 firebase 中存储加密的个人详细信息
【发布时间】:2020-01-22 16:40:53
【问题描述】:

我正在寻找一些关于 GDPR 和 firebase 的建议,我在网上查看过,显然 firebase 符合 GDPR,因为它在传输过程中安全地存储数据,并且 firebase 服务器本身是加密的。那么,如果是这种情况,我什至需要在将个人数据发送到 Firebase 之前在本地加密它吗?

目前我正在加密所有个人数据,但问题是我想要一个自动完成功能,可以在用户键入时搜索客户。现在这不会起作用,因为搜索“sha”不会找到“shaun”,因为 shaun 目前是加密的。所以我想知道我是否甚至需要加密客户详细信息,因为 firebase 本身是加密的。唯一的问题是我作为数据库管理员可以查看数据库中每个人的详细信息,但大多数应用程序中的所有数据库管理员肯定都是这种情况,因为您可以查询那里的数据并查看每个人的所有信息?

只要您不出于应用条款和条件之外的任何目的共享此数据,这应该没问题,不是吗?

【问题讨论】:

  • 我投票结束这个问题,因为它是关于法律合规性的问题。

标签: firebase security encryption


【解决方案1】:

首先,当您在数据库级别加密数据时,在应用程序层对该数据的任何使用都必须经过一定程度的解密。

因此,在您概述的示例中,理想情况下,自动完成功能将由 API 提供服务,后端的 API 将通过解密过程获取加密数据,以将其保存在内存中并适当地返回给客户端。

此外,假设管理员不能走红是不正确的,大多数数据泄露和韭菜都来自内部来源。因此,最好将 PII 在数据库中加密。

【讨论】:

  • 感谢您的回复,我更赞成在数据库级别上对所有内容进行加密,但我唯一担心的是,使用自动完成 API,我肯定必须从DB 在解密它们之前可能有 100 个。 Firebase 会为每个文档收取读取次数,因此如果每次用户使用自动完成功能后,它必须在解密和返回匹配的客户之前获取所有客户,这可能会导致大量读取。我的想法对吗?
  • 这些优化可以在应用程序级别处理,在应用程序加载时,数据可以在缓存中读取,然后使用预定时间,然后再次在缓存中重新加载。这也将消除频繁的数据库读取,并使事情变得更快。
  • 所以从本质上讲,您正在让所有客户加载应用程序并将它们存储在缓存或内存中,这样您就不必每次使用自动完成 API 时都搜索所有客户?
  • 取决于数据,如果我提取 id 、 name 和 email 那么它应该相对较小,因为有 1000 多个客户而不是数百万。对于更大的容量,我们应该做进一步的优化。
  • awesome i'd only ever store id, name and email in memory and when a customer is selected it will query the DB once to get the rest of the user details
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
相关资源
最近更新 更多