【问题标题】:Security of external jar file in GWTGWT 中外部 jar 文件的安全性
【发布时间】:2013-07-22 12:12:56
【问题描述】:

我创建了一个成功使用外部 jar 文件的 GWT 项目(请参阅 GWT - Using external jars / Java Projects by Lars Vogel‎ 和 Adding external jar in GWT)。

当我使用这样的库文件时,当我编译项目并将其上传到 AppEngine 时会发生什么? jar 文件是按原样上传的,还是先编译成别的东西?如果是前者,是否存在在不受我控制的情况下被下载的任何安全风险?

【问题讨论】:

    标签: google-app-engine gwt jar


    【解决方案1】:

    让我们删除“google-app-engine”部分,这里没关系。您在客户端使用 GWT 中的库。 App Engine 是服务器端,与 GWT 没有直接连接(但由于容量限制,使用 GWT 等客户端执行非常有用)。

    您在 GWT 中使用的所有内容都将编译为 JavaScript,传输到客户端并在那里执行。显然,您无法控制结果以及客户如何处理它。

    但它几乎不可读。另外,客户本身并没有得到 JAR,他也没有得到 JAR 中的所有内容。

    所以真正重要的是库的许可证是否允许这样做,以及库代码中是否存在仅供服务器端使用的机密。

    【讨论】:

      【解决方案2】:

      其实,他的的回答并不完全正确。 “google-app-engine”部分在这里很重要。从技术上讲,GWT 编译并混淆了它需要的所有 Java 代码。它会剔除所有不需要的东西。因此,从 GWT 生成的 JavaScript 来看,确实应该是不可能重构甚至识别该库的。但事实证明,如果您使用 Eclipse 插件部署您的应用程序,appcfg 会将各种随机内容上传到 AppEngine 服务器,有时包括项目的整个 Java 源代码(包括客户端代码)。

      要查看在您进行部署时上传的具体内容,请在上传运行时检查系统的temp-目录。您将在那里找到一个 AppEngine 暂存目录,其中包含要发送的所有内容。

      有关解决此问题的建议,您可以参考我之前提出的问题的答案:Removing unwanted uploads from AppEngine deployment

      我没有检查的是所有不需要的上传文件是否最终都位于实际上可以从互联网直接访问的目录中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        • 1970-01-01
        • 2011-01-23
        • 1970-01-01
        • 2016-02-08
        相关资源
        最近更新 更多