【发布时间】:2015-05-21 00:01:59
【问题描述】:
如果我将项目发布为公共网络应用程序,只接收和响应几个变量...那么完整的源代码和使用的库是否对所有用户可见?
【问题讨论】:
标签: web-applications google-apps-script
如果我将项目发布为公共网络应用程序,只接收和响应几个变量...那么完整的源代码和使用的库是否对所有用户可见?
【问题讨论】:
标签: web-applications google-apps-script
没有。发布应用程序和文件共享是两件不同的事情。您可以将 Apps 脚本应用发布为“任何人,甚至匿名”,并有权访问该网络应用,但如果您不与任何人共享该文件,那么任何人都无法访问该代码。
如果您与某人共享了类似电子表格文件的内容,并且他们制作了该电子表格的副本,那么他们将成为该电子表格副本的所有者,并且绑定到该电子表格的所有代码都将随该电子表格一起使用。在这种情况下,您的代码将不安全。
但是,如果它是一个独立的 Apps 脚本,并且您不与任何人共享 文件,您仍然可以向任何人授予运行该应用程序的访问权限发布的网址。
很多人创建了绑定到电子表格的 Apps 脚本代码,并且可能没有意识到当他们共享电子表格文件时,没有办法保护他们的代码。
独立应用不受任何约束。这就是区别。当然,HTML 中的任何 JavaScript 代码都是对世界开放的。唯一无法查看的代码是服务器端 .gs 代码,位于独立应用程序中。
除非您的函数名称是私有的,否则知道如何获取您所有非私有函数的名称。但是仅仅因为他们有一个函数的名字,并不意味着他们可以得到代码是什么。 (据我所知)。但是,有人可以在浏览器中修改 HTML,如果他们有函数的名称,则可能会使用 google.script.run 运行较低级别的函数。
如果您将项目密钥提供给某人以用作他们拥有的文件中的库,那么他们将新库放入后,他们会立即收到一封电子邮件,其中包含指向库的链接,他们可以查看该链接。所以,问题是,他们是否知道图书馆的 URL。如果他们不知道图书馆的 URL,他们就无法查看它。 (除非他们以某种方式猜到了 URL 是什么,并且很幸运)。但是对于独立应用程序脚本,它归您所有,不与任何人共享,无需提供项目密钥以添加为库。
【讨论】: