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