我有一个通过 RemoteObject 连接到 Zend Framework 的 Zend Amf 的 Flex 前端。这是我在客户端层 (Flex) 与应用程序和持久层(LAMP 与 Zend Framework)之间传输数据的唯一方法。我可以解决安全问题的一些方法如下:
- 我可以通过在我的 services-config.xml 文件中使用 mx.messaging.channels.SecureAMFChannel 来解决 TLS,并确保将 Flash 播放器加载到 HTTPS 包装器中,并且实际上使用的是 HTTPS,因为 AMF 协议位于 HTTP 之上
- RemoteObject 有一个 setCredentials 方法,我可以使用它传递 AMF 身份验证标头来保护用户相关数据。假设 TLS 实际上是安全的,我可以在验证用户后在端点上公开方法。
- 我可以通过正确设置 crossdomain.xml来防止跨站点脚本和其他FLASH漏洞
我的问题是如何保护我的端点免受另一个 AMF 消费者的侵害?例如,如果除了我的 Flex 客户端之外还有另一个 AMF 使用者(不是 Flash,因此不受 crossdomain.xml 和 Flash 沙盒安全性的约束),它知道我的端点,什么会阻止它使用端点公开的方法?
据我所知,我基本上需要一种方法来针对我的 Zend Amf 端点对我的 Flex 应用程序进行身份验证。在 AMF 消费者身份验证之后,我有了上面提到的一些安全机制来保护某些数据(例如用户身份验证)。我不能在我的 Flex swf 中嵌入某种身份验证机制,因为 swf 容易被反编译(swf 不能被信任)。虽然敏感数据通过用户身份验证受到保护,但未受保护的数据几乎不公开,但据我所知,它完全开放供公众使用。