以安全的方式从Apps脚本中读取和写入Firebase中的数据

时间:2017-08-24 14:47:06

标签: security firebase google-apps-script firebase-realtime-database google-sheets

我的目标是创建一个表格(Google表格),以可读的方式显示来自Firebase数据库的一些数据。

使用这个很棒的教程实现的目标: https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase/tutorials/read-and-write-data-in-firebase-from-apps-script

事实是这张表存在安全/隐私危害 - 因为" DB秘密"在脚本中显示。因此,我无法分享此表/脚本。

有没有办法在不编写网络应用的情况下以安全的方式使用Google Apps脚本(使用Google表格)? 也许通过添加某种"登录"机制? 或者限制对某些用户的访问(通过他们的电子邮件标识)?

1 个答案:

答案 0 :(得分:1)

您可以移动敏感代码到一个独立脚本和部署它作为一个̶[图书馆]̶[1],然后就可以参考库中你容器结合的脚本和唯一̶y̶o̶u̶'̶l̶l̶暴露是函数签名,而不是其中的代码保持̶“DB秘密”̶安全。

可以甚至添加额外的安全性,并创建一个白名单用户,̶和GATE的代码库中的,使得访问只授予这些上的列表中,因为̶y̶o̶u̶'̶l̶l̶能够检测当前用户经由̶ ̶S̶e̶s̶s̶i̶o̶n̶.̶g̶e̶t̶A̶c̶t̶i̶v̶e̶U̶s̶e̶r̶(̶)̶.̶g̶e̶t̶E̶m̶a̶i̶l̶(̶)̶̶。

更新1

验证了@Frank van Puffelen的评论,并且他是正确的,因为可以通过直接链接到独立脚本来公开库的代码。为了使用户能够使用他们至少只能访问的库,这允许他们使用直接链接到独立脚本来查看代码。

但这是一个可行的解决方案,您可以将脚本部署为add-on,这将确保您的代码保持私有状态。您的用户必须安装附加组件才能使用您的脚本,但他们无法访问代码。

更新2

我相信库对于你的用例仍然可行,但是你必须以一种全面的方式使用它们。

所以你可以这样做:

  
      
  • 创建,而不是一个,但两个库。

  •   
  • 公开分享其中一个库,以便您的用户可以访问它。让我们称这个库 LIB_A

  •   
  • 将任何敏感数据和功能存储在第二个库中;我们称之为 LIB_B

  •   
  • LIB_A 参考 LIB_B 。由于 LIB_A LIB_B 都属于同一帐户, LIB_A 可以访问 LIB_B 的内容。但是, LIB_B 的内容不会公开   给您的用户(只要不共享)。

  •   

请注意,这种方法并非没有缺点,每当您使用库时,您的应用程序都会受到性能影响,因此您使用的库越多,执行时间就越慢。因此,如果你有时间关键代码,这可能不是最好的方法。