【问题标题】:What's the best way to secure a Flex-BlazeDS application?保护 Flex-BlazeDS 应用程序的最佳方法是什么?
【发布时间】:2010-02-24 19:14:23
【问题描述】:

保护 Flex-BlazeDS 应用程序的最佳方法是什么?我用谷歌搜索了几个解决方案。

jsight 提问后更新:

  • Flex 会登录,所以我将在 RemoteObject 上设置凭据
  • 我不知道 BlazeDS 是否提供身份验证和授权(例如 WebORB,WebORB 为他们的产品寻找 BlazeDS)
  • 不需要 SSL
  • 我在 Internet 上看到了一些关于 Spring Security 的链接,所以我会检查一下。

身份验证将通过将用户登录名和密码与数据库进行比较来完成。

【问题讨论】:

  • 我建议使用某种形式的 SSL 和身份验证,但这可能听起来很刻薄。 :) 更严重的是,我们需要了解更多细节……您使用的是 spring(spring-security 可以很好地与 Flex/Blaze 配合使用)还是其他一些框架?你想要 SSL 吗?您想要登录页面(jsp 样式)还是在您的 flex 应用程序中登录?
  • - Flex 会登录,所以我将在 RemoteObject 上设置凭据 - 我不知道 BlazeDS 是否有身份验证和授权(例如 WebORB 有,WebORB 为他们的产品查看了 BlazeDS) - 不需要 SSL - 我在互联网上看到了一些关于 Spring 安全性的链接,所以我会检查一下。

标签: java apache-flex blazeds


【解决方案1】:

我的 2 美分:

  • 我们有一个 Flex 应用程序,我们的登录屏幕是 Flex 应用程序的一部分。我们不使用 SSL,但您可以根据需要定义安全通道(但您不需要);
  • 我们在服务器上创建了自己的适配器类实例(它扩展了 BlazeDS 附带的实例)。这个想法是这个类将检查该请求所属的会话是否具有经过身份验证的用户。在 Flex 方法/类(在 Java 端)中,我们使用注解来通知适配器类必须满足的要求才能调用该方法 - 我们将这些注解称为“FlexService”(用于类)和“ FlexMethod”(用于方法);
    • 这背后的主要原因是为了避免在用户之前没有经过身份验证的情况下调用某个方法,并且我们希望进行更精细的控制,而不仅仅是“阻止所有人”。我们有许可要求,这个库还负责检查用户是否有许可,以及该许可是否对每个请求仍然有效。
  • 请记住在将密码保存到数据库之前对其进行哈希处理,并仅比较哈希值。您可以在 Flex 客户端中对其进行一次哈希处理(因此打开的密码永远不会发送到服务器),然后在将其保存到数据库之前再次对哈希值进行哈希处理(这样如果有人获得了您的数据库哈希密码,他仍然无法破解进入您的系统,因为他没有从 Flex 客户端发送的原始散列值)。

我很确定如果 BlazeDS 实现了上述所有内容,我会得到一些反对意见,但我不喜欢我发现它的原生内容,我认为使用注释是一个很好的解决方案,尤其是因为我们是无论如何都使用注释来标记 BlazeDS 方法(这样 IntelliJ 就不会再为那些没有在任何地方调用的方法而困扰我们了)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2011-12-29
    • 2019-09-23
    • 2021-04-10
    • 1970-01-01
    • 2011-10-13
    • 2011-01-17
    相关资源
    最近更新 更多