[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

플래시 보안 정책 파일은 웹 서버의 데이터를 다른 곳에서 사용할 수 있도록 하기 위해 사용자가 서버에 작성하는 파일입니다.

보안 정책 파일은 다음을 포함한 많은 에셋에 영향을 줄 수 있습니다.
– 비트맵, 사운드 및 비디오 데이터
– XML 및 텍스트 파일 로드
– 다른 서버에 올려져 있는 SWF 파일을 로드하는 SWF 파일
– 소켓 및 XML 소켓 연결에 대한 액세스

Flash Player는 정책 파일 로드에 두 종류의 서버 연결 방식을 지원합니다.
– URLLoader 클래스 등을 이용한 통신은 URL 기반의 로드 방식(crossdomain.xml)을 사용합니다.
– Socket 및 XMLSocket 클래스를 사용할 때는 하위 TCP 수준에서 직접 소켓 정책 파일을 가져옵니다.

추가로, 정책 파일을 가져올 때 사용하는 방법은 연결할 때 사용하는 방법과 같아야 합니다. URL 방식으로 보안 정책 파일을 가져오더라도 소켓 방식으로 같은 서버에 연결할 수 없습니다.

플래시에서 연결을 요청하면 자동적으로 정책 파일 로드를 시도합니다. 이 때, 서버의 루트 디렉토리의 /crossdomain.xml이라는 URL 기반 정책 파일을 찾고, 포트 843에서 소켓 정책 파일 로드를 시도합니다. 요청한 연결은 대기열에 저장되어 정책 파일 로드 완료 후 실행됩니다.

참조

어도비 레퍼런스

[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

우선 소켓서버와 소켓간의 연동도 외부와의 통신이기 때문에 보안 샌드박스에 대한 이해가 필요합니다.

플래시의 보안 샌드박스는 네 가지로 나뉘는데,

1. local-with-filesystem

특별한 설정을 하지 않으면 자동으로 이 샌드박스가 선택됩니다. 이 샌드박스에서 플래시 플레이어는 URLLoader 등으로 로컬 파일을 읽을 수는 있지만, 서버와의 통신은 불가능합니다.

사용자는 자신의 로컬 정보가 네트워크를 통해 누출되지 않음을 확신할 수 있습니다.

2. local-with-networking

로컬 파일에서 네트워크 연동을 할 때 사용되는 샌드박스입니다.

이 샌드박스에서 플래시 플레이어는 서버와 데이터를 주고 받을 수 있으나, 로컬파일에는 액세스가 불가능합니다.

그러나 서버측에서 크로스도메인 관련 파일이나, Security.allowAccess 메서드를 이용해 swf 파일을 허용해 주어야 합니다.

3. local-trusted

신뢰할 수 있는 파일로 등록된 swf 파일입니다.

local-trusted 샌드박스의 swf 파일은 다른 swf 파일과 상호작용하고 로컬과 서버 모두에 접근할 수 있습니다.

4. remote

인터넷 상에 embed 등의 형식으로 붙여 넣어진 플래시 파일입니다.

이 샌드박스에서는 로컬 파일에 액세스 할 수 없으며, 같은 서버의 리소스에는 접근이 허용되지만 외부 서버의 접근에는 local-with-networking 샌드박스와 같이 크로스도메인 파일이나 Security.allowAccess가 필요합니다.

플래시에서 샌드박스 타입 설정은 ‘파일-제작 설정’에서 가능하며 로컬 파일만 액세스와 네트워크만 액세스를 선택할 수 있습니다.

웹 상에 올린 플래시는 모두 remote 샌드박스 안에서 작동하구요, exe 파일이나 테스트 플레이로 실행한 파일들은 local-trusted 샌드박스 안에서 작동합니다.

참조

어도비 레퍼런스