【问题标题】:Source-code of Libraries used by WebApps visible to everybody?每个人都可以看到 WebApps 使用的库的源代码?
【发布时间】:2012-11-24 08:06:30
【问题描述】:

ScriptDb in Library accessed by WebApp 中的星座相似,并且那里给出的答案也适用于这个问题:
当已发布的 WebApp(每个人都可以访问并以访问用户身份运行)正在使用库时,需要将此库共享给公众(拥有链接的人),否则会出现错误
“您无权访问您的脚本使用的库...,或者它已被删除。”

这意味着,每个拥有我图书馆链接的人都可以看到所有宝贵的源代码。现在的问题是,有人能猜出那个链接,它看起来像

 https://script.google.com/a/macros/..../d/Mmov_2Lg8BnmygsjmTBZMqKFZSw7a2n3o/edit?template=default

或者这个链接既不包含在传递给使用 WebApp 的网络内容中,也不能从库的(猜测的)名称中轻松派生?如果上述链接中以 Mmov_2Lg8B 开头的字符串不知何故是库的编码名称和版本号,并且算法在两个方向上都有效,那么情况就是如此。
总结:已发布 WebApp 的源代码对用户不可见,但该 App 使用的所有库都可以被拥有链接的每个人看到。这个链接容易猜到吗?或者是否有完全不同的方法来保持库的源代码私有?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    我最初认为通过检查 webapp 可以看到库密钥,但这是不可能的。因此,您确实需要将您的图书馆分享给“知道链接的任何人”,但只要您不在任何地方公布此链接,您将无法仅使用您的网络应用找到它。

    【讨论】:

    • 似乎我想象中的一个问题已经消失了。
    【解决方案2】:

    查看 Henrique 答案中的 cmets - 库网址 不可 猜测,并且在 web 应用程序中不可

    【讨论】:

    • 这是一个确定的答案!因此,标识库的字符串(以及在将其作为项目内的库引用时也使用)在客户端的 dom 中不存在,并且此 id 是由加密接受的保存方式组成的,就像一个强大的单向哈希?!
    • 客户端上没有id。我不会评论密钥是如何生成的,但它应该被认为是不可猜测的。
    • Hmpf。你知道它是如何产生的,但你不想谈论它?这让我很好奇。为什么你不能说类似的东西:它使用 blabla 作为种子通过 SHA-2 生成,而 Mossad 在其绝密事物上使用相同的算法。
    • 我不喜欢提供线索,即使它们看起来无害。
    【解决方案3】:

    如果有人在脚本编辑器中调试公共代码并继续按STEP IN,那么最终他将到达库代码。所以你不能以任何方式隐藏库代码。

    【讨论】:

    • 只有 Google Apps 脚本项目的编辑者和查看者可以调试代码,非编辑者/查看者可以这样做,因为其他人可以运行 web 应用程序,并不是每个人都能看到库代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多