Flash Player 보안 개요

대부분의 Flash Player 보안은 로드된 SWF 파일, 미디어 및 기타 에셋의 원래 도메인을 기반으로 합니다. www.example.com과 같은 특정 인터넷 도메인을 기반으로 하는 SWF 파일은 언제든지 해당 도메인의 모든 데이터에 액세스할 수 있습니다. 이러한 에셋은 보안 샌드박스라는 동일한 보안 그룹에 포함됩니다. 자세한 내용은 보안 샌드박스을 참조하십시오.

예를 들어, SWF 파일은 SWF 파일, 비트맵, 오디오, 텍스트 파일 및 자체 도메인의 모든 에셋을 로드할 수 있습니다. 또한 동일한 도메인에서 ActionScript 3.0으로 작성된 두 SWF 파일 간의 크로스 스크립팅은 항상 허용됩니다. 크로스 스크립팅은 ActionScript를 사용하여 하나의 SWF 파일에서 다른 SWF 파일의 속성, 메서드 및 객체에 액세스하는 기능입니다.

ActionScript 3.0을 사용하여 작성된 SWF 파일과 ActionScript 3.0 이전 버전을 사용하여 작성된 SWF 파일 간의 크로스 스크립팅은 지원되지 않습니다. 단, LocalConnection 클래스를 사용하여 이러한 파일 간의 통신은 가능합니다. 또한 다른 도메인의 ActionScript 3.0 SWF 파일을 크로스 스크립팅하고 다른 도메인의 데이터를 로드하는 SWF 파일의 기능은 기본적으로 차단됩니다. 그러나 로드된 SWF 파일에서 Security.allowDomain() 메서드를 호출하여 이러한 액세스를 허용할 수 있습니다. 자세한 내용은 크로스 스크립팅을 참조하십시오.

기본적으로 다음과 같은 기본 보안 규칙이 적용됩니다.

  • 동일한 보안 샌드박스의 리소스는 항상 서로 액세스할 수 있습니다.

  • 원격 샌드박스의 SWF 파일에서는 로컬 파일과 데이터에 액세스할 수 없습니다.

Flash Player는 다음을 개별 도메인으로 간주하고 각각에 대해 개별 보안 샌드박스를 설정합니다.

  • http://example.com

  • http://www.example.com

  • http://store.example.com

  • https://www.example.com

  • http://192.0.34.166

http://example.com과 같은 이름을 가진 도메인이 http://192.0.34.166 등의 특정 IP 주소로 매핑되는 경우에도 각각에 대해 개별 보안 샌드박스가 설정됩니다.

SWF 파일에서 해당 샌드박스가 아닌 다른 샌드박스의 에셋에 액세스할 수 있도록 하기 위해 개발자는 다음과 같은 기본적인 두 가지 메서드를 사용할 수 있습니다.

Flash Player 보안 모델에서는 내용을 로드하는 것과 데이터를 추출하거나 액세스하는 것을 구분합니다. 내용이 시각적 미디어를 포함한 미디어로 정의된 경우 Flash Player는 오디오, 비디오 또는 표시된 미디어를 포함하는 SWF 파일을 표시합니다. 데이터는 ActionScript 코드에만 액세스할 수 있는 항목으로 정의됩니다. 내용과 데이터는 서로 다른 방법으로 로드됩니다.

  • 내용 로드 - Loader, Sound 및 NetStream과 같은 클래스를 사용하여 내용을 로드할 수 있습니다.

  • 데이터 추출 - Bitmap 객체, BitmapData.draw() 메서드, Sound.id3 속성 또는 SoundMixer.computeSpectrum() 메서드를 사용하여 로드된 미디어 내용에서 데이터를 추출할 수 있습니다.

  • 데이터 액세스 - URLStream, URLLoader, Socket, XMLSocket 클래스 등의 클래스를 사용하여 XML 파일과 같은 외부 파일에서 로드하여 직접 데이터에 액세스할 수 있습니다.

Flash Player 보안 모델은 내용 로드와 데이터 액세스에 대해 서로 다른 규칙을 정의합니다. 일반적으로 데이터에 액세스하는 것보다 내용을 로드하는 데 적용되는 제한이 적습니다.

일반적으로 SWF 파일, 비트맵, mp3 파일, 비디오 등의 내용은 모든 위치에서 로드될 수 있지만 로드하는 SWF 파일의 도메인이 아닌 다른 도메인의 내용은 별도의 보안 샌드박스로 구분됩니다.

내용을 로드하는 데는 다음과 같은 몇 가지 제한이 있습니다.

  • 기본적으로 사용자의 하드 드라이브와 같이 네트워크 주소가 아닌 위치에서 로드된 로컬 SWF 파일은 local-with-filesystem 샌드박스로 분류됩니다. 이러한 파일은 네트워크에서 내용을 로드할 수 없습니다. 자세한 내용은 로컬 샌드박스을 참조하십시오.

  • RTMP(Real-Time Messaging Protocol) 서버로 내용에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 RTMP 서버를 사용하여 제공된 내용을 참조하십시오.

로드된 미디어가 이미지, 오디오 또는 비디오인 경우, SWF 파일의 도메인이 미디어의 원래 도메인에 있는 URL 정책 파일에 포함된 경우에만 해당 보안 샌드박스 외부에 있는 SWF 파일에서 로드된 미디어의 데이터(예: 픽셀 데이터 및 사운드 데이터)에 액세스할 수 있습니다. 자세한 내용은 데이터로 로드된 미디어 액세스를 참조하십시오.

다른 형식의 로드된 데이터에는 URLLoader 객체를 통해 로드되는 텍스트나 XML 파일이 있습니다. 이 경우에도 다른 보안 샌드박스에서 모든 데이터에 액세스하려면 원래 도메인에 있는 URL 정책 파일을 통해 액세스 권한이 부여되어야 합니다. 자세한 내용은 URLLoader 및 URLStream 사용을 참조하십시오.