Flash Player 9 보안 변경점 (2)

Posted at 2008/04/26 16:53// Posted in dev
ActionScript에서 XMLSocket을 이용해서 서버에 접속할 수가 없다.

현상
플래시에서 XMLSocket을 이용해서 소켓통신을 하는데 connect에서 연결이 되지 않는다.

원인
Flash Player 9 Update 3의 보안 변경 사항에 의해서 1024 이후 포트에 대해서(well-known 포트가 아닌 포트) 연결하려고 하면 먼저 소켓 정책 파일을 내려받아야 한다. 이 정책 파일은 기존 HTTP로 요청하는 crossdomain.xml으로 대체할 수 없고, 해당 서버의 TCP:843 포트로 Flash Player의 요청을 받아 응답해야 한다.

해결방법
정책파일을 내려받는 데몬, 서버등을 구축한다. 자세한 내용은 추가정보의 Adobe 공식 사이트를 참고한다.
Windows 환경에서의 예제는 본인이 여기저기서 짜집기;;한 코드를 받아서 보면 이해가 빠를 듯 하다.
PolicyServer.zip
PolicyServer.zip


추가정보
자세한 보안 변경 사항에대해서는 Adobe 공식 사이트에 나와있다.
http://www.adobe.com/kr/devnet/flashplayer/articles/fplayer9_security.html

소켓 정책 파일은 다음 페이지에 나와있다.
http://www.adobe.com/kr/devnet/flashplayer/articles/fplayer9_security_04.html
주요 부분을 발췌하면 다음과 같다.
소켓 마스터 정책 파일
정책 파일이 처음 도입된 후 Flash Player는 /crossdomain.xml 을 URP 정책 파일의 마스터 위치로 인식하고 있습니다. 그러나 9,0,115,0 버전 이전의 Flash Player는 소켓 정책 파일의 고정 마스터 위치를 인식하지 못했습니다. Flash Player 9,0,115,0에서 고정 TCP 포트 번호 843에서 제공하는 소켓 마스터 정책 파일의 개념이 처음으로 도입되었습니다.
소켓 마스터 정책 파일을 통해 다음과 같은 여러 가지 요구 사항을 충족할 수 있습니다.
- 고정 포트 번호는 호스트에서 소켓 정책을 제공하는 표준 방식입니다. 이전에는 각 호스트 관리자가 이러한 방식을 직접 결정해야 했습니다. 그러나 고정 포트 번호를 사용하면 독립형 소켓 정책 파일 서버는 기본적으로 포트 843에 연결되므로 관리자가 익숙하지 않은 시스템에서 소켓 정책을 찾는 것이 한결 수월해집니다.
- 마스터 위치는 소켓 메타 정책을 선언하는 방식입니다. 호스트에서 상주하도록 허용된 소켓 정책 파일을 제어한다는 점에서 소켓 메타 정책은 앞서 살펴본 URL 메타 정책과 유사합니다. 이에 대한 내용은 아래에 있는 소켓 메타 정책 섹션에서 자세히 다룰 것입니다.
- 포트 843에서 소켓 정책 파일을 제공하는 것은 호스트 관리자가 Flash Player의 1단계 버전에서도 새로운 소켓 규칙을 적용하겠다는 의사 표시입니다. 이에 대한 내용은 아래에 있는 엄격한 소켓 규칙 선택 섹션에서 자세히 다룰 것입니다.
- ActionScript에서 소켓 정책 파일의 위치를 Flash Player에 알리려고 loadPolicyFile을 호출하지 않고도
Flash Player는 고정 마스터 위치를 자동으로 확인할 수 있습니다.

Python이나 Perl의 경우 다음의 공식 페이지에서 예제를 받을 수 있다.
http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

적용버전
Flash Player 9 Update 3 (9,0,115,0) 이후 버전

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/26 16:53 2008/04/26 16:53

http://zeru.kr/blog/trackback/415

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret