授权导入范围后是否可以浏览电子表格?

2024-03-06

我在谷歌驱动器上创建了几个电子表格。所以我是所有这些的所有者。

我有一个电子表格(主),它作为主文件将数据导出到我与顾问团队共享的其他电子表格(活动报告)中。导出的数据使他们能够使用列表作为数据验证等,这有助于主文件分析他们的活动(无需清理数据)。

由于我已在与顾问团队共享的电子表格上批准了主控的导入范围,因此我知道已创建连接。因此,他们可以更改活动报告上的公式,以访问我不希望他们在我的主文件上看到的数据。

对所有要导出/导入的内容使用范围名称或特定工作表会阻止他们浏览所需的内容(他们基本上需要电子表格的 ID 和包含工作表名称或命名范围的范围)。

但我想知道 Apps 脚本是否允许他们这样做(浏览我的主文件以了解我如何命名我的工作表、范围等),因为如果是这种情况,则在使用的电子表格上授权导入范围编辑器可以允许他们使用命名范围或通过非专用于导出的工作表名称基本上导入文件中所需的任何内容,包括敏感或机密信息。


但我想知道 Apps 脚本是否可以允许他们这样做(浏览我的主文件以了解我如何命名工作表、范围等),

在我的简短测试中,应用程序脚本授权/权限似乎与导入范围授权是分开的。因此,如果从属电子表格(导​​入数据的电子表格)上的编辑者无法访问主电子表格,则他/她无法通过 Apps 脚本访问主电子表格上的数据。然而,从站上的编辑器能够通过 importrange 公式访问主站。

来自support https://support.google.com/docs/answer/3093340,

必须明确授予电子表格使用 IMPORTRANGE 从其他电子表格中提取数据的权限。目标工作表第一次从新的源工作表提取数据时,系统将提示用户授予权限。一旦授予访问权限,目标电子表格上的任何编辑者都可以使用 IMPORTRANGE 从源电子表格的任何部分提取数据。访问权限将一直有效,直到从源中删除授予访问权限的用户为止。


对所有要导出/导入的内容使用范围名称或特定工作表会阻止他们浏览所需的内容(他们基本上需要电子表格的 ID 和包含工作表名称或命名范围的范围)。

本质上,您想使用工作表名称/范围名称作为密码。在我的简短测试中,遇到了以下问题:

  • 暴力破解是一种可能性。 SheetName/RangeName 应具有 >30 位的熵,即随机工作表名称/特殊字符/大写/小写字母,且字符数 >8。

  • 关于 importrange 的运作方式并没有透露太多。这意味着,谷歌将来可以轻松允许应用程序脚本访问,而您可能不知道。

  • 最后,也是最重要的,工作表名称/范围名称是完全可选的。

    range_string 的sheet_name 部分是可选的;默认情况下,IMPORTRANGE 将从第一个工作表的给定范围导入。

换句话说,任何编辑者都可以不受限制地访问第一张工作表。例如,以下导入是完全有效的:

=IMPORTRANGE("SPREADSHEETURL", "A1:Z")

此外,如果您不小心将主电子表格中的敏感工作表移至左侧,使其成为第一个工作表,则所有编辑人员都可以在移动后轻松访问该工作表。为了最大限度地减少这种风险,您可以创建一个电子表格系统:主控>从属1(仅导入一张工作表。没有编辑器)>从属1的从属(1个编辑器;从从属1导入)。在这种情况下,即使slave1工作表名称被猜测,Master工作表也是安全的。

Verdict:

使用它是一个坏主意importrange()为了任何敏感数据的安全。此外,对多个工作表使用 importrange 充其量也是不可靠的。出于所有目的,最好完全避免 importrange。虽然比公式有点繁琐,但对于电子表格同步,最好使用“独立” https://developers.google.com/apps-script/guides/standalone从性能和安全角度来看脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

授权导入范围后是否可以浏览电子表格? 的相关文章

  • 从电子表格脚本中调用 Web 应用程序脚本?

    如何从 Google 电子表格容器中的脚本调用外部 Google Web App 脚本 我有许多动态创建的电子表格 并希望它们全部调用一个 Web 应用程序 以实现一致性和易于维护 看看这篇博文 触发主从电子表格之间的更新 http www
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • Flex 和 crossdomain.xml

    我想知道将 crossdomain xml 添加到应用程序服务器的根目录是否存在任何安全问题 它可以添加到服务器的任何其他部分吗 您是否知道任何不需要服务器放置此文件的解决方法 谢谢 达米安 通过添加 crossdomain xml 主要的
  • 为什么用户名不能更改?

    我到处都读到 并在实践中看到 用户名不应该更改 当我问为什么时 给出的理由是 安全 我一直在寻找关于为什么更改用户名不安全的明确答案 但我似乎找不到答案 这里有哪位有安全经验的人可以回答这个问题吗 注 如果您不知道答案 请不要猜测 我自己也
  • 如何确保密钥是在 TPM 内部创建的?

    我需要 在客户端计算机上运行 exe 这将在 TPM 中创建密钥对 然后我将使用 TPM 生成的密钥对的公钥部分创建 CSR 我关心的是如何确保密钥是在 TPM 内部创建的 而不是由欺骗的 TPM 创建的 这将使私钥能够被迁移和复制 我听说
  • 使用 Google Apps 脚本处理数组中输入元素中的多个文件

    我有一个表单 允许从下拉列表中选择一个项目并上传文件 项目的名称和 ID 保存在电子表格文档中 适用于一个文件 但我想上传多个文件 你能帮我修改一下脚本吗 HTML 部分如下所示 div class col md 4 col sm 6 di
  • Google Sheets - 如何从 iOS 应用程序运行脚本?

    我在电子表格中使用脚本在活动行下方添加行并从活动行复制内容 在 PC 上 我可以通过图像 绘图触发脚本 效果很好 但我不知道如何让它在 iOS 应用程序中工作 其中图像触发不起作用 并且将内容从一个应用程序复制到另一个应用程序是一场噩梦 我
  • 重命名带有“完整工作表”图表的工作表会导致电子表格重新加载

    Google 表格允许将图表移动到自己的表格中 不过 谷歌脚本似乎无法重命名这些工作表 而不会使电子表格崩溃并强制其重新加载 要明白我的意思 请尝试以下操作 1 创建新的电子表格并在其中放入一些数据 2 使用数据创建任何类型的图表 3 编辑
  • Bower 安装 self_signed_cert_in_chain

    我正在 Windows 中使用 git bash 构建一个角度应用程序 到目前为止 我已经能够使用 yo 搭建脚手架 没有问题 但是当我尝试发出以下命令时 有人可以指出我来解决这个问题吗 Bower 安装 Angular Bootstrap
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc
  • 如何在 JASPIC 中保存经过身份验证的用户?

    我开发了一个安全认证模块 SAM 并实现了validateRequest方法 我还有一个简单的 Web 应用程序配置为使用此 SAM In my validateRequest方法 我检查 clientSubject 并设置一个Caller
  • 在 JAX-WS 中使用安全性的最佳实践是什么

    这是场景 我有一些需要保护的 Web 服务 JAX WS 目前 为了身份验证需求 我提供了额外的 SecurityWService 它为授权用户提供了一些需要在请求其他服务时描述的 userid 和 sessionid 使用一些java安全
  • XPath 将元素中的所有文本作为一个值获取,删除换行符

    我试图获取以下一组节点中的所有文本并作为一个值返回 而不是多个节点 p I love eating out br br This is my favorite restaurant br I will definitely be back
  • 使用公钥时出现 InvalidKeySpecException

    我正在拼命尝试在 Android 上使用非对称公钥 私钥加密技术来加密消息 我在 Windows 上 使用 puttygen 生成了公钥和私钥 我不确定它有什么区别 但我选择了 SSH 2 RSA 这是公钥 AAAAB3NzaC1yc2EA
  • Java:BCrypt 的用途很好吗?

    我想知道我当前的 BCrypt 实现是否正确 我知道我没有使用BCrypt checkpw 这可能会导致问题 所以这是我在这里验证的主要原因 Hasher java容器类 abstract public class Hasher publi
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • 有关 CredEnumerate 的帮助

    作为后续this https stackoverflow com questions 199518 how to programatically add mapped network passwords winxp我希望有人可以帮助解决这个
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • 当我使用加盐 CRYPT_MD5 加密我的密码时,正在加密什么?

    对字符串使用 md5 总是会产生字母数字加密结果 即 没有符号 然而 当我使用 php crypt 函数 特别是带有盐的 CRYPT MD5 并且它已打开 我已经检查过 时 它返回的假定 md5 哈希看起来不像 md5 哈希 例如 如果我

随机推荐

  • SonarQube:一天有多少小时的技术债务?

    如果 SonarQube 说我在某个项目中有 1 天的技术债务 那么这是否会转化为 24 小时的技术债务或 8 小时的技术债务 从几小时到几天的转换是可定制的 默认情况下为 8 小时 但您可以通过转至管理 gt 配置 gt 技术债务来找到您
  • 查找不是父/祖父母/等或子/孙/等的所有链接对象的算法

    我有一个名为Device A Device可以有一位家长 Device A Device还可以有n child Devices 我有一个下拉列表 显示所有可选的Devices 我可以获得所有Devices很容易在数据库中 db Device
  • 在 Scala 中使用 @BeanProperty 而不是定义 getter/setter 函数是一个好习惯吗?

    在类中定义可以公开访问 修改的数据成员 var foo Int def foo foo Int foo foo setter function def foo foo getter function 使用注释转换它是一个好习惯吗 BeanP
  • 如何更改Resharper的字体大小?

    如何更改Resharper的字体大小 我发现文件结构 实时模板和其他 UI 组件的字体小得难以忍受 我找不到任何自定义字体大小的选项 我尝试将 Windows DPI 增加到 150 这确实有效 但会导致很多其他问题 我正在使用 Resha
  • 为定制 RISC-V imafd SOC 移植 Linux

    我正在尝试构建一个 yocto演示 coreip cli我的自定义 risc v SOC 的图像仅支持imafd指示 对于 Bitbake 使用的交叉工具链的编译 我尝试更改 openembedded core 层中的 cross binu
  • Three.js 使用 WebRTC 并应用 Shader

    我不知道如何将着色器应用于具有视频纹理的 Three js 对象 我一直在使用 webRTC 和 Three js 并使用标准材质成功将视频纹理映射到网格上 var material new THREE MeshBasicMaterial
  • 使用 SimpleAdapter 过滤 listView 数据

    我需要帮助才能使过滤发挥作用 ListView 显示正确 但是当我在搜索字段中输入字母时出现错误 java lang NullPointerException 并且应用程序关闭 这是我的活动中的代码片段 我认为我必须修复它 但不知道如何修复
  • Android 计费 v3 - 无签名

    我想要的是 检索所有购买的商品后 我需要在服务器上验证购买情况 我想使用从应用内付款收到的签名和签名数据来完成此操作 首先 我使用了应用内计费 v2 每次使用我的开发者帐户都会获得静态测试 sku 的正确签名和签名数据android tes
  • 如何在 Katalon Studio 中读取 Excel 工作表中的数据

    我可以知道如何从 Katalon Studio 中的 Excel 工作表中读取数据 以便从文件中读取 API 端点以检查其输出吗 如何在 java 中编写代码以使 URL 运行并验证来自 API 端点的响应 我已经创建了一个示例项目 htt
  • 是否可以使用 SSE 对此嵌套进行矢量化?

    我从来没有为 SSE 优化编写过汇编代码 如果这是一个菜鸟问题 我很抱歉 在this https felix abecassis me 2012 08 sse vectorizing conditional code 文章解释了如何向量化f
  • VBScript 函数中的变量范围

    我有一个关于 VBScript 中变量范围的问题 我知道有以下关键字 来自autoitscript com http www autoitscript com autoit3 docs keywords Dim htm Dim 本地范围 如
  • XRX 是唯一完全符合 W3C 的全栈 Web 应用程序“框架”吗?

    XRX 是指前端完全用 XML 方言编写 后端完全用 XML 方言编写的应用程序 并且数据在它们之间以 XML over REST 的形式传递 这是唯一完全由 W3C 维护的技术组成的 Web 应用程序堆栈 对吗 我认为回答这个问题的最佳方
  • UIScrollView 在 Swift 中不滚动

    我的 UIScrollView 不会向下滚动 我不知道为什么 我已经关注了有关此问题的 Apple 文档 IBOutlet weak var scroller UIScrollView override func viewDidLoad s
  • 限制样式表对父窗口小部件的影响?

    我正在设置 a 的背景颜色QWidget子类 当我使用样式表执行此操作时 其他组件的样式QWidget更改 例如 按钮的颜色及其外观发生变化 如何确保只有容器小部件的背景颜色发生变化 其余子组件保持不变 一种方法是指定 ID 选择器 确保设
  • 在 Android 应用程序中播放 Youtube 视频,无需使用 Android Youtube API

    有没有另一种方法可以在 Android 应用程序中播放 Youtube 视频而不使用 Android Youtube API 我们已经使用上述 API 实现了一个解决方案 但在某些设备上需要降级 Youtube 应用程序版本才能播放视频 我
  • 当我们运行任何rails命令时,可以采取什么措施来修复以下错误:“`require_relative':无法加载此类文件”

    任何 Rails 命令对我都不起作用 我通过rvm安装了几个版本的ruby 我尝试安装所有版本的 Rails 它们确实安装成功 但对于所有版本 每当我运行时 我都会遇到以下错误any我的项目目录中的rails命令 rails new blo
  • NSMutableSet 包含重复项

    我有一个名为的自定义类card我需要从随机大小的卡片数组中创建一组 10 张独特的卡片 另外 我需要首先包含所有列入白名单的卡 以确保它们始终包含在内 我的问题是白名单中的卡片 并且只有白名单 可能会在集合中重复 随机添加的卡片永远不会重复
  • 在哪里可以找到 4.0 的 TPL 数据流版本?

    我正在寻找 NET 4 0 版本的 TPL 数据流库 Nuget 包有一个 4 0 版本的库 但它似乎针对 NET 4 5 我发现了对 4 0 版本的各种引用 例如在这个论坛中 http social msdn microsoft com
  • 将鼠标事件从 iframe 传播到托管文档

    我有一个覆盖整个 HTML 文档的 iframe 我想将点击和悬停事件传播回托管文档 我有什么选择 几周前 我被要求针对一个项目对此进行研究 这是可以做到的 这里有一个实际的例子 http www esqsoft com javascrip
  • 授权导入范围后是否可以浏览电子表格?

    我在谷歌驱动器上创建了几个电子表格 所以我是所有这些的所有者 我有一个电子表格 主 它作为主文件将数据导出到我与顾问团队共享的其他电子表格 活动报告 中 导出的数据使他们能够使用列表作为数据验证等 这有助于主文件分析他们的活动 无需清理数据