'샌드박스'에 해당되는 글 1

  1. 2010.01.08 :: 플래시 swf 로컬 테스트시 샌드박스 보안 문제 해결 :: 3

출처 : 카일캐턴님 블로그
원본 : http://kylekaturn.egloos.com/416772


플래시로 개발을 하다 로컬에서 테스트시 종종 보안관련 에러가 뜨는것을 볼수 있다.
Flash IDE 에서 테스트 무비 를 하거나 Flex Builder 에서 컴파일시에는 아무런 무리 없이 플레이가 되는데
스탠드 얼론 Flash Player 로 플레이를 하거나 html 파일을 통해서 열었을 경우에는 보안에러가 심심치 않게 뜨게 된다

이 문제는 플래시 의 보안 샌드박스와 관련된 문제이다

플래시에서의 보안 샌드박스는 크게 4타입으로 나누어진다.

Secruity.REMOTE
Security.LOCAL_WITH_FILE
Security.LOCAL_WITH_NETWORK
Security.LOCAL_TRUSTED

가장 위에 REMOTE 는 원격 샌드박스로서 웹서버에 올려진 SWF파일에 적용되는 샌드박스인데 이번에는 논외로 하고 SWF파일이 로컬에 위치할때는 아래 3개의 샌드박스중 하나가 적용되게 된다.

우 리가 일반적으로 로컬에서 stand alone Flash Player 나 html 을 통해서 swf 파일을 플레이할경우 LOCAL_WITH_NETWORK 샌드박스를 적용받게 된다. 이는 네트워크상에 위치한 파일에 접근 가능하다(크로스도메인 설정 필요) 그렇지만 로컬디스크에 저장되어 있는 파일에는 접근이 불가능하다. 따라서 SWF 와 같은 폴더에 있는 XML 를 로드하는 등의 행위시에 보안 에러가 발생한다. 

Flex 컴파일시에 컴파일 옵션으로 -use-network=false 설정시 LOCAL_WITH_FILE 의 샌드박스를 적용받게 되는데 이때는 로컬에 저장되어 있는 파일에 접근가능하다. 그렇지만 어떠한 네트워크상 자원의 접근이 일체 불가능하다.(크로스 도메인 설정과 무관함)

마지막으로 LOCAL_TRUSTED 샌드박스는 Flash IDE 에서 TEST MOVIE 를 할경우와 같이 로컬과 네트워크 양쪽 다 접근이 가능한 샌드박스이다. (크로스도메인 설정이 안되어 있더라도 접근 가능)

이 러한 보안 샌드박스의 차이점 때문에 Flash 에서 테스트 무비를 할때는 LOCAL_TRUSTED 샌드박스를 적용받기 때문에 아무 문제 없던 SWF 파일도 스탠드 얼론 Flash Player 를 통해 플레이 할경우에는 보안에러가 나오게 되는것이다.

최 근진행중인 자이젠 다운로드 센터 프로젝트의 경우 Action Script Project 의 형태로 개발을 하고 있고 Flash 에서는 디스플레이 관련 에셋만 제작해서 swc 형태로 컴파일해서 사용하고 있는데 이때 로컬의 StandAlone Flash Player 로 테스트를 하게 되므로 LOCAL_TRUSTED 의 샌드박스 혜택을 볼수가 없어서 각종 보안에러를 만나게 된다.

그런데 구글링중 LOCAL_TRUSTED 의 범위를 설정할수 있는 방법이 설명된 ADOBE 의 문서를 찾게 되었다.
아주 간단한 방법으로 특정 파일 혹은 폴더안에 있는 SWF 가 LOCAL_TRUSTED 의 샌드박스를 적용되게 하는 방법인데 문서에서는 8버젼 기준 설명인지 몰라도 CS3 와는 약간 다르다. CS3 에서는

C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust

윈도우 버젼 기준으로 상기 폴더에 간단한 텍스트 화일을 추가해 주면 된다.
텍스트 화일의 확장자는 cfg 여야 하며 LOCAL_TRUSTED 의 보안 샌드박스가 적용될 파일명, 혹은 폴더명을 포함하고 있는 텍스트 문서가 되어야 한다.

나는 D:\workspace 폴더에서 작업을 주로 하므로 kylekaturn.cfg 파일을 상기 폴더에 생성하고 파일 내용은 간단히

D:\workspace

라고 한줄만 적어서 저장하였다.

이후 테스트시 workspace 이후에 모든 서브폴더의 swf 파일들은 LOCAL_TRUSTED 샌드박스에 포함되어 네트워크 와 로컬 파일 모두 접근 가능하게 되었다.