我有一个Flex前端通过RemoteObject连接到Zend Framework的Zend Amf。这是我在客户端层(Flex)与应用程序和持久层(使用Zend Framework的LAMP)之间传输数据的唯一方法。 我可以解决安全问题的一些方法如下:
我的问题是如何保护我的端点免受另一个AMF消费者的攻击?例如,如果有另一个AMF消费者(不是Flash,因此不受crossdomain.xml和Flash沙盒安全性限制),而不是我的知道我的端点的Flex客户端,那么什么会阻止它使用端点公开的方法?
据我所知,我基本上需要一种方法来针对我的Zend Amf端点验证我的Flex应用程序。在AMF消费者身份验证之后,我有一些上面提到的安全机制来保护某些数据(比如用户身份验证)。我无法在我的Flex swf中嵌入某种身份验证机制,因为swf容易受到反编译(swf不可信)。虽然敏感数据受到用户身份验证的保护,但未受保护的数据几乎不公开,但据我所知,它完全可供公众使用。
答案 0 :(得分:0)
您无法阻止任何人向您的终端发送任意HTTP请求。如果您的Flex应用程序针对服务器对用户进行身份验证,并且服务器仅在请求具有正确的凭据/会话ID时才提供敏感数据,则一切正常。您不能做的是对用户进行身份验证,并仅在客户端中存储用户已通过身份验证。由于HTTP是无状态协议,因此服务器必须能够单独授权每个请求。 “常规”网站和AJAX也是如此。
答案 1 :(得分:0)
除非提供某种身份验证,否则AMF客户端无法知道是谁调用了它们。 Flex发送的任何HTTP请求都可以通过非Flex方式进行模拟,正如您所正确指出的那样,可以提取任何嵌入的密钥。因此,没有通用的解决方案,但如果您为HTTPS连接提供客户端证书并使服务器检查客户端证书,您可能会解决一些问题。