1

我最近观看了来自 Google I/O 的有关 GWT 安全性最佳实践的视频,演讲者的强烈建议之一是将您的应用程序实际分离为两个不同的应用程序:

  • 登录应用程序- 用于显示登录屏幕并验证主应用程序的用户;和
  • 主要应用程序- 应用程序的其余部分

他的理由是所有客户端代码都可能受到损害,即使使用 GWT 疯狂的混淆方法也是如此。不要让自己受到不必要的攻击,因此通过拥有两个独立的应用程序,攻击者(甚至无权登录和使用系统)将只能拉下登录应用程序的客户端代码而不会获得他掌握了Primary App的客户端代码。

我喜欢这种方法,但计划将我的应用程序部署到 GAE,这严格禁止您使用多个应用程序 (WAR) 来相互协调(在条款和条件中明确说明!)。

所以看来谷歌开发者自己在这里也有分歧!一方面,GWT 团队出于安全目的希望您的应用程序被拆分,但 GAE 团队不希望 2 个以上的应用程序出于计费目的而相互“联盟”。我的印象是谷歌希望开发者拥抱他们的整个平台,同时使用 GWT 和 GAE。

那么这里的交易是什么?!?有没有办法在不产生单独的 WAR(从而安抚 GAE)的情况下分解我的代码库,但是在您登录之前无法看到我的Primary App的代码?

我认为“是”,但是 GWT 会强制您一次下载所有内容(以最大程度地减少往返和昂贵的 HTTP 请求)。有任何想法吗?提前致谢!

4

1 回答 1

5

我认为这个想法是在 GWT 中有单独的模块来进行登录并运行真正的应用程序。

例如,您可能会看到: https ://github.com/ashtonthomas/GwtAdvancedLogin

这个 Google Web Toolkit (GWT) 应用程序是一个示例,说明如何创建一个单独的登录模块,然后将其汇集到一个或多个包含主应用程序登录的其他模块。

您可以使用这种类型的设置来完全控制您的登录页面,而不是将其包含在您的主模块中。

顺便说一句,Gwt 不会强迫您一次下载所有内容。您可以轻松拆分代码。 https://developers.google.com/web-toolkit/doc/latest/DevGuideCodeSplitting

我认为拥有单独的模块是您想要的,而不是代码拆分。

于 2012-08-11T12:29:24.777 回答