플래시 플레이어 9.0.124 이후 원격지 소켓인증받기

Author : 알쯔 / Date : 2008. 7. 31. 15:49 / Category : 팁로그

플래시 플레이어 9.0.124 버전 이후부터는 crossdomain.xml 즉, 보안정책파일을 더이상 80포트로 접근할 수 없게 되었습니다.
따라서. Security.loadPolicyFile("http://domain.com/crossdomain.xml"); 로 선언된 보안정책은 적용되지 않습니다.

물론, 소켓으로 접속하려는 곳의 서버와 플래시가 위치한 서버가 동일하다면 9.0.124 버전에서도 별도의 보안정책설정없이 접속이 가능합니다.

이를 해결하기위해선 http 프로토콜이 아닌, https 프로토콜을 이용하여 보안정책파일에 접근하시거나, 소켓접속시 843 포트로 보안정책파일을 전송해주어야 합니다.

https 를 이용한 접근방법은, 일반적인 https 구축방법에 따라 구축하신후 기존대로 사용하시면 되고, 843 포트를 이용해 보안접속파일을 전송하는 방법에 대해서만 포스팅 합니다.

아래방법으로 하기위해서는 서버의 root 권한이 필요하며, 서버에 C 컴파일러가 있어야합니다.(리눅스서버라면 기본적으로 gcc 컴파일러가 있습니다.)


먼저 위의 파일을 받습니다.
그리고 보안인증정책파일을 fspfd.xml 이름으로 만듭니다.
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="www.domain.com" to-ports="8081"/>
</cross-domain-policy>

보안정책파일을 만드는 방법은 플래시 메뉴얼을 참고하셔서, 자신의 서버와 접속할 포트에 맞게 수정하시면 됩니다. (보안정책파일을 만드는 방법은 이 포스팅에서 기술하지 않겠습니다.)

위에서 받으신 fspfd.c 파일과 만드신 보안인증파일 fspfd.xml 을 서버의 아무곳에나 업로드합니다. 단, 2개의 파일은 같은 폴더에 존재하여야 합니다.
업로드 하신후 서버에 root 권한으로 로그인합니다.
fspfd.c 파일이 있는 폴더에서 아래와 같이 컴파일을 해줍니다.

gcc -Wall -O2 -o fspfd fspfd.c

컴파일이 완료되면, 역시 컴파일을 한 폴더에서 아래와 같이 인증서버를 실행합니다.

./fspfd &

1줄, 또는 2줄의 메세지가 뜨고 명령프롬프트 상태로 돌아온다면 성공적으로 인증서버데몬이 실행된 것입니다.

이제 플래시파일에서 별도의 Security.loadPolicyFile 선언없이, 소켓명령어를 사용하여 소켓접속을 하시면 됩니다.
소켓명령어로 특정포트로 접속을 시도하면, 먼저 플래시 플레이어에서는 해당 서버의 자동으로 843 포트에 응답요청을 보내고, fspfd 에 의해 인증정책파일을 자동으로 받아오게 됩니다.

출처 : http://panzergruppe.hp.infoseek.co.jp/fspfd.html
위의 페이지의 내용과 소스를 설명과 함께 번역(?)하였습니디다.

Tags : , , ,

Trackbacks 0 / Comments 0

Follow Me

Search

Statistics

  • Total : 2,319,632
  • Today : 13
  • Yesterday : 24

Blog Information

알쯔

Calendar

«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Copyright © 알쯔의 외부기억장치 All Rights Reserved
Powered by ARZZ.COM