Apps 脚本 - Web 应用程序:可见的源代码/库?

Apps Script - Web App: Visible Source Code / Library?

如果我将项目发布为 public 网络应用程序,仅接收和响应几个变量...那么完整的源代码和可能使用的库是否对所有用户可见?

没有。发布应用程序和文件共享是两件不同的事情。您可以将 Apps 脚本应用程序发布为“任何人,甚至是匿名的”,可以访问网络应用程序,但如果您不与任何人共享该文件,那么任何人都将无法访问该代码。

如果您与某人共享电子表格文件之类的内容,并且他们制作了电子表格的副本,那么他们将成为电子表格副本的所有者,并且绑定到电子表格的所有代码都将与电子表格一起使用。在那种情况下,您的代码将不安全。

但是,如果它是一个独立的 Apps 脚本,并且您不与任何人共享 文件,您仍然可以提供任何人都可以使用 运行 已发布的 URL.

应用程序

很多人创建 Apps 脚本代码 绑定 到电子表格,并且可能没有意识到当他们共享电子表格文件时,无法保护他们的代码。

独立的应用程序不绑定任何东西。这就是区别。当然,HTML 中的任何 JavaScript 代码都是对世界开放的。唯一无法查看的代码是服务器端 .gs 代码,在独立应用程序中。

除非您的函数名称是私有的,否则知道如何操作的人可以获得所有非私有函数的 名称。但仅仅因为他们有一个函数的名称,并不意味着他们可以得到代码是什么。 (据我所知)。但是,有人可以在浏览器中修改 HTML,并且可能 运行 一个较低级别的函数 google.script.run 如果他们知道函数的名称。

如果你给了某人项目密钥,在他们拥有的文件中用作库,一旦他们放入新库,他们就会收到一封电子邮件,其中包含 link 到库,这他们可以查看。所以,问题是,他们是否知道图书馆的URL。如果他们永远不知道图书馆的 URL,他们将无法查看。 (除非他们以某种方式猜到了 URL 是什么,并且很幸运)。但如果是独立应用程序脚本,它归您所有,不与任何人共享,则无需提供要添加为库的项目密钥。