保护Flex-BlazeDS应用程序的最佳方法是什么?

时间:2010-02-24 19:14:24

标签: java flex blazeds

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

jsight提问后更新:

  • Flex会登录,因此在RemoteObject上我将设置凭据
  • 我不知道是否有使用BlazeDS的身份验证和授权(例如WebORB,WebORB查看了BlazeDS的产品)
  • 不需要SSL
  • 我在互联网上看到一些关于弹簧安全性的链接,所以我会检查出来。

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

1 个答案:

答案 0 :(得分:4)

我的2美分:

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

我很确定如果BlazeDS实现了上述所有内容,我会得到一些downvotes,但我不喜欢我发现它本身的东西,我认为使用注释是一个很好的解决方案,特别是因为我们是无论如何使用注释来标记BlazeDS方法的方法(因此IntelliJ会停止打扰我们关于任何地方都没有调用的方法。)