보안 샌드박스Flash Player 9 이상, Adobe AIR 1.0 이상 클라이언트 컴퓨터는 외부 웹 사이트, 로컬 파일 시스템 또는 설치된 AIR 응용 프로그램 등 다양한 소스로부터 코드, 내용 및 데이터를 포함하는 개별 파일을 가져올 수 있습니다. Flash Player 및 AIR 런타임은 코드 파일과 공유 객체, 비트맵, 사운드, 비디오 및 데이터 파일 등의 기타 리소스를, 이들이 로드될 때의 원래 위치를 기준으로 하여 개별적으로 보안 샌드박스에 할당합니다. 다음 단원에서는 지정된 샌드박스 내에서 실행되는 코드 또는 내용이 액세스할 수 있는 항목을 제어하는 런타임의 규칙에 대해 설명합니다. Flash Player 보안에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "보안"을 참조하십시오. 원격 샌드박스Flash Player 및 AIR 런타임은 인터넷에서 가져온 에셋(SWF 파일 포함)을 원래 도메인에 해당하는 별개의 샌드박스로 분류합니다. 예를 들어 example.com에서 로드된 에셋은 foo.org에서 로드된 에셋과 다른 보안 샌드박스에 배치됩니다. 기본적으로 이러한 파일은 해당 서버의 모든 리소스에 대한 액세스가 허용됩니다. 원격 SWF 파일은 URL 정책 파일 및 Security.allowDomain() 메서드와 같은 명시적인 웹 사이트 및 제작자 권한을 사용하여 다른 도메인의 데이터에 추가로 액세스할 수 있습니다. 자세한 내용은 웹 사이트 컨트롤(정책 파일) 및 제작자(개발자) 컨트롤을 참조하십시오. 원격 SWF 파일에서는 로컬 파일이나 리소스를 로드할 수 없습니다. Flash Player 보안에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "보안"을 참조하십시오. 로컬 샌드박스로컬 파일은 file: 프로토콜이나 UNC(Universal Naming Convention) 경로를 사용하여 참조되는 모든 파일을 의미합니다. 로컬 SWF 파일은 다음 네 개의 로컬 샌드박스 중 하나에 배치됩니다.
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 파일을 로드할 수 없습니다. AIR 응용 프로그램 샌드박스Adobe AIR 런타임은 application 샌드박스라는 추가 샌드박스를 Flash Player 보안 샌드박스 모델에 추가합니다. AIR 응용 프로그램의 일부로 설치된 파일은 응용 프로그램 샌드박스에 로드됩니다. 응용 프로그램에서 로드된 다른 모든 파일의 보안 제한은 일반적인 Flash Player 보안 모델에서 지정한 제한 사항을 따릅니다. 응용 프로그램이 설치되면 AIR 패키지 내에 포함된 모든 파일이 사용자 컴퓨터의 응용 프로그램 디렉토리에 설치됩니다. 개발자는 app:/ URL 스킴을 통해 코드에서 이 디렉토리를 참조할 수 있습니다(URI 스킴 참조). 응용 프로그램이 실행하면 응용 프로그램 디렉토리 트리 내의 모든 파일이 응용 프로그램 샌드박스에 할당됩니다. 응용 프로그램 샌드박스의 내용은 로컬 파일 시스템과의 상호 작용을 포함하여 AIR 응용 프로그램에서 사용할 수 있는 전체 권한으로 보호됩니다. 많은 AIR 응용 프로그램에서는 로컬로 설치된 이러한 파일만 사용하여 응용 프로그램을 실행합니다. 그러나 AIR 응용 프로그램은 응용 프로그램 디렉토리 내의 파일만 제한하지 않고 모든 소스에서 파일 유형을 로드할 수 있습니다. 이러한 파일에는 사용자 컴퓨터에 대한 로컬 파일은 물론 로컬 네트워크 또는 인터넷에서의 소스와 같이 사용 가능한 외부 소스에서 가져온 파일도 포함됩니다. 파일 유형은 보안 제한 사항에는 영향을 주지 않습니다. 로드된 HTML 파일의 보안 권한은 동일한 소스에서 로드한 SWF 파일의 보안 권한과 동일합니다. 응용 프로그램 보안 샌드박스의 내용은 다른 샌드박스의 내용 사용을 금지하는 AIR API에 액세스할 수 있습니다. 예를 들어 응용 프로그램에 대한 응용 프로그램 설명자 파일의 내용을 반환하는 air.NativeApplication.nativeApplication.applicationDescriptor 속성은 응용 프로그램 보안 샌드박스의 내용에만 적용됩니다. 제한된 API의 또 다른 예는 로컬 파일 시스템을 읽고 쓰는 메서드를 포함하는 FileStream 클래스입니다. 응용 프로그램 보안 샌드박스의 내용에만 사용할 수 있는 ActionScript API는 ActionScript 3.0 Reference for Adobe Flash Platform에서 AIR 로고로 표시됩니다. 기타 샌드박스에서 이러한 API를 사용하면 런타임에서 SecurityError 예외가 발생합니다. HTMLLoader 객체에 있는 HTML 내용의 경우 모든 AIR JavaScript API(AIRAliases.js 파일을 사용할 때 air 객체를 통해 또는 window.runtime 속성을 통해 사용 가능)를 응용 프로그램 보안 샌드박스의 내용에서 사용할 수 있습니다. 다른 샌드박스의 HTML 내용이 window.runtime 속성에 액세스할 수 없으므로 이 내용은 AIR 또는 Flash Player API에 액세스할 수 없습니다. AIR 응용 프로그램 내에서 실행되는 내용은 다음과 같은 추가 제한을 갖습니다.
AIR 내부의 JavaScript에 대한 제한응용 프로그램 보안 샌드박스의 내용과 달리 비 응용 프로그램 보안 샌드박스의 JavaScript 내용은 eval() 함수를 호출하여 동적으로 생성된 코드를 언제든지 실행할 수 있습니다. 하지만 AIR 내의 비 응용 프로그램 보안 샌드박스에서 실행되는 JavaScript에는 제한이 있습니다. 있습니다.
자세한 내용은 서로 다른 샌드박스의 내용에 대한 코드 제한 사항을 참조하십시오. 로컬 SWF 파일의 샌드박스 유형 설정컴퓨터의 최종 사용자나 관리자는 로컬 SWF 파일을 신뢰할 수 있는 파일로 지정하여 해당 파일에서 로컬과 네트워크의 모든 도메인에 있는 데이터를 로드하도록 할 수 있습니다. 이것은 전역 Flash Player Trust 및 사용자 Flash Player Trust 디렉토리에 지정됩니다. 자세한 내용은 관리자 컨트롤 및 사용자 컨트롤을 참조하십시오. 로컬 샌드박스에 대한 자세한 내용은 로컬 샌드박스를 참조하십시오. Adobe Flash Professional제작 도구에서 문서의 제작 설정을 설정함으로써 local-with-filesystem 샌드박스 또는 local-with-networking 샌드박스에 대해 SWF 파일을 구성할 수 있습니다. Adobe FlexAdobe Flex 컴파일러에서 use-network 플래그를 설정하여 local-with-filesystem 샌드박스 또는 local-with-networking 샌드박스에 대해 SWF 파일을 구성할 수 있습니다. 자세한 내용은 Adobe Flex 3 응용 프로그램 작성 및 배포의 "응용 프로그램 컴파일러 옵션 정보"를 참조하십시오. Security.sandboxType 속성SWF 파일의 제작자는 읽기 전용의 정적 Security.sandboxType 속성을 사용하여 Flash Player 또는 AIR 런타임이 SWF 파일에 할당한 샌드박스의 유형을 확인할 수 있습니다. Security 클래스에는 다음과 같이 Security.sandboxType 속성의 가능한 값을 나타내는 상수가 포함되어 있습니다.
|
|