보안 샌드박스



클라이언트 컴퓨터는 외부 웹 사이트나 로컬 파일 시스템 등의 여러 소스에서 개별 SWF 파일을 얻습니다. Flash Player는 SWF 파일과 공유 객체, 비트맵, 사운드, 비디오 및 데이터 파일 등의 기타 리소스를, 이들이 Flash Player로 로드될 때의 원래 위치를 기준으로 하여 개별적으로 보안 샌드박스에 할당합니다. 다음 단원에서는 지정된 샌드박스에서 SWF 파일이 액세스할 수 있는 항목을 제어하는 Flash Player의 규칙에 대해 설명합니다.

Flash Player 보안에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "보안"을 참조하십시오.

원격 샌드박스

Flash Player는 인터넷의 SWF 파일을 포함하여 에셋을 해당 웹 사이트의 원래 도메인에 해당하는 별도의 샌드박스에 분류합니다. 기본적으로 이러한 파일은 해당 서버의 모든 리소스에 대한 액세스가 허용됩니다. 원격 SWF 파일은 URL 정책 파일 및 Security.allowDomain() 메서드와 같은 명시적인 웹 사이트 및 제작자 권한을 사용하여 다른 도메인의 데이터에 추가로 액세스할 수 있습니다. 자세한 내용은 웹 사이트 컨트롤(정책 파일)제작자(개발자) 컨트롤을 참조하십시오.

원격 SWF 파일에서는 로컬 파일이나 리소스를 로드할 수 없습니다.

Flash Player 보안에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "보안"을 참조하십시오.

로컬 샌드박스

로컬 파일file: 프로토콜이나 UNC(Universal Naming Convention) 경로를 사용하여 참조되는 모든 파일을 의미합니다. 로컬 SWF 파일은 다음 네 개의 로컬 샌드박스 중 하나에 배치됩니다.

  • local-with-filesystem 샌드박스 - 보안을 위해 Flash Player는 기본적으로 모든 로컬 SWF 파일 및 에셋을 local-with-file-system 샌드박스에 배치합니다. 이 샌드박스에서 SWF 파일은 URLLoader 클래스 등을 사용하여 로컬 파일을 읽을 수 있지만, 네트워크와는 어떤 방식으로도 통신할 수 없습니다. 사용자는 로컬 데이터가 네트워크로 누출되거나 다른 방식으로 부적절하게 공유되지 않는다는 확신을 가질 수 있습니다.

  • local-with-networking 샌드박스 - SWF 파일을 컴파일할 때, 로컬 파일로 실행되지만 네트워크 액세스가 가능하도록 지정할 수 있습니다(로컬 SWF 파일의 샌드박스 유형 설정 참조). 이러한 파일은 local-with-networking 샌드박스에 배치됩니다. local-with-networking 샌드박스에 할당된 SWF 파일에서는 해당 로컬 파일에 액세스할 수 없습니다. 대신, SWF 파일은 네트워크의 데이터에 액세스할 수 있습니다. 하지만 URL 정책 파일이나 Security.allowDomain() 메서드에 대한 호출을 통해 권한이 부여되지 않는 한 local-with-networking SWF 파일은 여전히 네트워크의 데이터를 읽을 수 없습니다. 이러한 권한을 부여하려면 URL 정책 파일에서 <allow-access-from domain="*"/> 또는 Security.allowDomain("*")을 사용하여 모든 도메인에 권한을 부여해야 합니다. 자세한 내용은 웹 사이트 컨트롤(정책 파일)제작자(개발자) 컨트롤을 참조하십시오.

  • local-trusted 샌드박스 - 사용자나 설치 프로그램에 의해 신뢰할 수 있는 파일로 등록된 로컬 SWF 파일은 local-trusted 샌드박스에 배치됩니다. 시스템 관리자와 사용자는 보안 고려 사항에 따라 local-trusted 샌드박스에 또는 해당 샌드박스로부터 로컬 SWF 파일을 재할당하거나 이동할 수도 있습니다(관리자 컨트롤사용자 컨트롤 참조). local-trusted 샌드박스에 할당된 SWF 파일은 다른 SWF 파일과 상호 작용하고 원격이나 로컬의 모든 위치에서 데이터를 로드할 수 있습니다.

  • AIR 응용 프로그램 샌드박스 - 이 샌드박스에는 실행 중인 AIR 응용 프로그램과 함께 설치된 내용이 들어 있습니다. 기본적으로 AIR 응용 프로그램 샌드박스의 파일은 모든 도메인의 임의 파일을 크로스 스크립팅할 수 있습니다. 그러나 AIR 응용 프로그램 샌드박스 외부의 파일은 AIR 파일을 크로스 스크립팅할 수 없습니다. 기본적으로 AIR 응용 프로그램 샌드박스의 파일은 도메인에서 내용과 데이터를 로드할 수 있습니다.

local-with-networking과 local-with-filesystem 샌드박스 간의 통신은 물론 local-with-filesystem과 원격 샌드박스 간의 통신이 엄격하게 금지됩니다. Flash Player에서 실행되는 응용 프로그램이나 사용자 또는 관리자는 이러한 통신을 허용하는 권한을 부여할 수 없습니다.

어느 방향으로든 로컬 HTML 파일과 로컬 SWF 파일 간에 스크립팅하려면(예: ExternalInterface 클래스 사용) 관련 HTML 파일과 로컬 SWF 파일이 모두 local-trusted 샌드박스에 있어야 합니다. 이것은 브라우저의 로컬 보안 모델이 Flash Player 로컬 보안 모델과 다르기 때문입니다.

local-with-networking 샌드박스의 SWF 파일은 local-with-filesystem 샌드박스의 SWF 파일을 로드할 수 없습니다. local-with-filesystem 샌드박스의 SWF 파일은 local-with-networking 샌드박스의 SWF 파일을 로드할 수 없습니다.

로컬 SWF 파일의 샌드박스 유형 설정

제작 도구에서 문서의 제작 설정을 설정함으로써 local-with-filesystem 샌드박스 또는 local-with-networking 샌드박스에 대해 SWF 파일을 구성할 수 있습니다.

컴퓨터의 최종 사용자나 관리자는 로컬 SWF 파일을 신뢰할 수 있는 파일로 지정하여 해당 파일에서 로컬과 네트워크의 모든 도메인에 있는 데이터를 로드하도록 할 수 있습니다. 이것은 전역 Flash Player Trust 및 사용자 Flash Player Trust 디렉토리에 지정됩니다. 자세한 내용은 관리자 컨트롤사용자 컨트롤을 참조하십시오.

로컬 샌드박스에 대한 자세한 내용은 로컬 샌드박스을 참조하십시오.

Security.sandboxType 속성

SWF 파일의 제작자는 읽기 전용의 정적 Security.sandboxType 속성을 사용하여 SWF 파일에 할당된 샌드박스의 유형을 확인할 수 있습니다. Security 클래스에는 다음과 같이 Security.sandboxType 속성의 가능한 값을 나타내는 상수가 포함되어 있습니다.

  • Security.REMOTE - 인터넷 URL에서 가져온 SWF 파일이며 도메인 기반 샌드박스 규칙에 따라 작동합니다.

  • Security.LOCAL_WITH_FILE - 로컬 SWF 파일이지만 사용자가 신뢰하지 않았고 네트워킹이 지정되지 않았습니다. 이 SWF 파일은 로컬 데이터 소스에서 읽을 수 있지만 인터넷과 통신할 수 없습니다.

  • Security.LOCAL_WITH_NETWORK - 로컬 SWF 파일이고 사용자가 신뢰하지 않았지만 네트워킹이 지정되었습니다. 이 SWF 파일은 인터넷과 통신할 수 있지만 로컬 데이터 소스에서 읽을 수는 없습니다.

  • Security.LOCAL_TRUSTED - 로컬 SWF 파일이고 설정 관리자나 Flash Player 신뢰 구성 파일을 사용하여 사용자가 신뢰한 파일입니다. 이 SWF 파일은 로컬 데이터 소스에서 읽을 수 있고 인터넷과 통신할 수 있습니다.

  • Security.APPLICATION - SWF 파일은 AIR 응용 프로그램에서 실행되고 있고 해당 응용 프로그램용 패키지(AIR 파일)와 함께 설치되었습니다. 기본적으로 AIR 응용 프로그램 샌드박스의 파일은 모든 도메인의 임의 파일을 크로스 스크립팅할 수 있습니다. 그러나 AIR 응용 프로그램 샌드박스 외부의 파일은 AIR 파일을 크로스 스크립팅할 수 없습니다. 기본적으로 AIR 응용 프로그램 샌드박스의 파일은 도메인에서 내용과 데이터를 로드할 수 있습니다.