2010-01-15 6 views
1

저는 RemoteObject를 통해 Zend Framework의 Zend Amf에 연결하는 Flex 프론트 엔드를 보유하고 있습니다. 이것은 클라이언트 계층 (Flex)과 응용 프로그램 및 지속성 계층 (Zend Framework의 LAMP)간에 데이터를 전송하는 유일한 방법입니다.Zend AMF 구현 및 AMF 프로토콜 보안

내 services-config.xml 파일에 mx.messaging.channels.SecureAMFChannel를 사용하여 플래시 플레이어를 보장함으로써 TLS를 해결할 수
  • 가 HTTPS 래퍼에로드
      이며 다음과 같이 내가 보안 문제를 해결 할 수 몇 가지 방법이 있습니다 사실 AMF 프로토콜이 HTTP 위에 쌓여 있기 때문에 사실 HTTPS를 사용합니다.
    1. RemoteObject에는 AMF 인증 헤더를 전달하여 사용자 관련 데이터를 보호 할 수있는 setCredentials 메소드가 있습니다. TLS가 실제로 안전하다고 가정하면 사용자를 인증 한 후 엔드 포인트에서 메소드를 노출 할 수 있습니다.
    2. 나는 내가 가진 문제는 내가 다른 AMF 소비자에 대한 내 엔드 포인트를 보호하는 방법입니다

    제대로 설정에 crossdomain.xml과 크로스 사이트 스크립팅 및 기타 플래시 취약점으로부터 보호 할 수 있습니까? 예를 들어 내 끝점을 알고있는 Flex 클라이언트가 아닌 다른 AMF 소비자 (Flash가 아닌 crossdomain.xml 및 Flash 샌드 박스 보안)가 있으면 끝 점이 노출하는 메서드를 사용하지 못하게 할 수있는 방법은 무엇입니까?

    내가 아는 한, 필자는 Zend Amf 엔드 포인트에 대해 Flex 어플리케이션을 인증 할 방법이 필요합니다. AMF 소비자 인증 후, 나는 위에서 언급 한 보안 메커니즘 중 일부를 사용하여 (사용자 인증과 같은) 특정 데이터를 보호합니다. swf가 디 컴파일에 취약하기 때문에 swf에 인증 메커니즘을 내장 할 수 없습니다 (swf는 신뢰할 수 없습니다). 민감한 데이터는 사용자 인증을 통해 보호되지만 보호되지 않은 데이터는 거의 공개되지 않지만 내가 알 수있는 한 완전히 공개 된 상태입니다.

  • 답변

    0

    누군가가 임의의 HTTP 요청을 끝점으로 보내지 못하게 할 수 없습니다. Flex 어플리케이션이 서버에 대해 사용자를 인증하고 요청에 적절한 자격 증명/세션 ID가있는 경우 서버에서 중요한 데이터 만 처리하면 모든 것이 정상입니다. 할 수없는 일은 사용자를 인증하고 클라이언트 내에 인증 된 사용자 만 저장하는 것입니다. HTTP는 상태 비 저장 프로토콜이므로 서버는 각 요청을 개별적으로 인증 할 수 있어야합니다. "정규"웹 사이트 및 AJAX와 동일한 것입니다.

    0

    AMF 클라이언트는 일종의 인증이 제공되지 않는 한 누가 호출했는지 알 수 없습니다. Flex가 전송하는 모든 HTTP 요청은 Flex 이외의 방법으로 에뮬레이트 될 수 있으며, 정확하게 말하면 포함 된 키를 추출 할 수 있습니다. 따라서 일반적인 솔루션은 없지만 HTTPS 연결을위한 클라이언트 인증서를 제공하고 서버가 클라이언트 인증서를 확인하게 만들면 아마도 문제가 발생할 수 있습니다.