GWT中外部jar文件的安全性

时间:2013-07-22 12:12:57

标签: google-app-engine gwt jar

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

当我使用这样的库文件时,当我编译项目并将其上传到AppEngine时会发生什么? jar文件是否按原样上传,或者是否先将其编译成其他内容?如果是前者,是否存在无法控制下载的任何安全风险?

2 个答案:

答案 0 :(得分:1)

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

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

但它接下来是不可读的。此外,客户端本身并未获得JAR,并且他没有获得JAR内部的所有内容。

所以真正重要的是,如果图书馆的许可证允许这样做,并且图书馆代码中是否有秘密只打算在服务器端使用。

答案 1 :(得分:1)

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

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

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

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