권한 컨트롤

Flash Player 9 이상, Adobe AIR 1.0 이상

Flash Player 클라이언트 런타임 보안 모델은 리소스를 중심으로 설계되어 있으며, 이러한 리소스는 SWF 파일, 로컬 데이터 및 인터넷 URL 등의 객체입니다. 이러한 리소스를 소유하거나 사용하는 관계자는 자신이 소유한 리소스에 대해 컨트롤(보안 설정)을 실행할 수 있습니다. 각 리소스에는 네 명의 관계자가 있습니다. Flash Player에서는 다음 그림과 같이 컨트롤에 대해 권한 계층 구조를 엄격하게 적용합니다.

권한 계층 구조
보안 컨트롤 계층 구조

예를 들어 관리자가 리소스에 대한 액세스를 제한하면 다른 관계자가 해당 제한을 무시할 수 없습니다.

AIR 응용 프로그램의 경우 이러한 권한 제어는 AIR 응용 프로그램 샌드박스 외부에서 실행되는 내용에만 적용됩니다.

관리자 컨트롤

컴퓨터에 관리자 권한으로 로그인한 관리자의 경우 해당 컴퓨터의 다른 모든 사용자에게 영향을 주는 Flash Player 보안 설정을 적용할 수 있습니다. 가정용 컴퓨터와 같이 엔터프라이즈 환경이 아닌 컴퓨터에는 보통 한 명의 사용자가 관리자 권한도 가지고 있습니다. 엔터프라이즈 환경에서도 개별 사용자가 컴퓨터에 대해 관리자 권한을 가질 수 있습니다.

관리자 컨트롤에는 다음 두 가지 유형이 있습니다.

  • mms.cfg 파일

  • 전역 Flash Player Trust 디렉토리

mms.cfg 파일

mms.cfg 파일은 다양한 기능에 대한 관리자 액세스를 허용하거나 제한할 수 있는 텍스트 파일입니다. Flash Player를 시작하면 이 파일의 보안 설정을 읽어 기능을 제한하는 데 사용합니다. mms.cfg 파일에는 관리자가 개인 정보 제어, 로컬 파일 보안, 소켓 연결 등의 기능을 관리하는 데 사용하는 설정이 포함되어 있습니다.

SWF 파일은 Capabilities.avHardwareDisableCapabilities.localFileReadDisable 속성을 호출하여 비활성화된 기능에 대한 일부 정보를 액세스할 수 있습니다. 그러나 mms.cfg 파일의 설정 대부분은 ActionScript에서 쿼리할 수 없습니다.

컴퓨터에 응용 프로그램과 무관한 보안 및 개인 정보 보호 정책을 적용하려면 시스템 관리자가 mms.cfg 파일을 수정해야 합니다. 응용 프로그램의 설치 관리자에서는 mms.cfg 파일을 사용할 수 없습니다. 관리자 권한으로 실행되는 설치 관리자는 mms.cfg 파일의 내용을 수정할 수 있지만, Adobe는 이러한 사용을 사용자의 신뢰 위반으로 간주하고 설치 프로그램 작성자에게 mms.cfg 파일을 수정하지 않도록 권고합니다.

mms.cfg 파일은 다음 위치에 저장됩니다.

  • Windows: system\Macromed\Flash\mms.cfg

    (예: C:\WINDOWS\system32\Macromed\Flash\mms.cfg)

  • Mac: app support/Macromedia/mms.cfg

    (예: /Library/Application Support/Macromedia/mms.cfg)

mms.cfg 파일에 대한 자세한 내용은 www.adobe.com/go/flash_player_admin_kr에서 Flash Player 관리 안내서를 참조하십시오.

전역 Flash Player Trust 디렉토리

관리자 및 설치 프로그램은 지정된 로컬 SWF 파일을 모든 사용자에 대해 신뢰할 수 있는 파일로 등록할 수 있습니다. 이러한 SWF 파일은 local-trusted 샌드박스에 할당되며, 다른 SWF 파일과 상호 작용하고 원격이나 로컬의 모든 위치에서 데이터를 로드할 수 있습니다. 파일은 다음 위치의 전역 Flash Player Trust 디렉토리에 신뢰할 수 있는 파일로 지정됩니다.

  • Windows: system\Macromed\Flash\FlashPlayerTrust

    (예: C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust)

  • Mac: app support/Macromedia/FlashPlayerTrust

    (예: /Library/Application Support/Macromedia/FlashPlayerTrust)

Flash Player Trust 디렉토리에는 텍스트 파일을 무제한으로 포함할 수 있으며 각 텍스트 파일에는 신뢰할 수 있는 경로가 한 줄에 하나씩 나열되어 있습니다. 각 경로는 개별 SWF 파일, HTML 파일 또는 디렉토리일 수 있습니다. 주석 행은 # 심볼로 시작됩니다. 예를 들어 다음과 같은 텍스트가 포함된 Flash Player 신뢰 구성 파일은 지정된 디렉토리 및 모든 하위 디렉토리의 모든 파일에 대해 신뢰 상태를 부여합니다.

# Trust files in the following directories: 
C:\Documents and Settings\All Users\Documents\SampleApp

신뢰 구성 파일에 나열된 경로는 항상 로컬 경로나 SMB 네트워크 경로여야 합니다. 신뢰 구성 파일의 모든 HTTP 경로는 무시되며, 로컬 파일만 신뢰할 수 있습니다.

충돌을 피하려면 각 신뢰 구성 파일에 설치 응용 프로그램에 해당하는 파일 이름을 부여하고 .cfg 파일 확장명을 사용합니다.

설치 프로그램을 통해 로컬로 실행되는 SWF 파일을 배포하려는 개발자의 경우, 설치 프로그램에서 전역 Flash Player Trust 디렉토리에 구성 파일을 추가하도록 함으로써, 배포하는 파일에 전체 권한을 부여할 수 있습니다. 이때, 설치 프로그램은 관리자 권한이 있는 사용자가 실행해야 합니다. mms.cfg 파일과 달리 전역 Flash Player Trust 디렉토리는 신뢰 권한을 부여하기 위한 목적으로 설치 프로그램에 포함될 수 있습니다. 관리자와 설치 프로그램 모두 전역 Flash Player Trust 디렉토리를 사용하여 신뢰할 수 있는 로컬 응용 프로그램을 지정할 수 있습니다.

또한 개별 사용자를 위한 Flash Player Trust 디렉토리도 있습니다(사용자 컨트롤 참조).

사용자 컨트롤

Flash Player에서는 권한 설정에 대해 설정 UI, 설정 관리자 및 사용자 Flash Player Trust 디렉토리의 서로 다른 세 가지의 사용자 수준 메커니즘을 제공합니다.

설정 UI 및 설정 관리자

설정 UI는 특정 도메인의 설정을 구성하는 빠른 대화형 메커니즘입니다. 설정 관리자는 보다 자세한 인터페이스와 많은 도메인이나 전체 도메인의 권한에 영향을 주는 글로벌 변경 기능을 제공합니다. 또한 SWF 파일에서 새로운 권한을 요청할 때 보안 또는 개인 정보에 대해 런타임 의사 결정이 필요한 경우, 사용자가 일부 Flash Player 설정을 조정할 수 있는 대화 상자가 표시됩니다.

설정 관리자 및 설정 UI에서는 카메라 및 마이크 설정, 공유 객체 저장 설정, 이전 내용과 관련된 설정 관련 등의 보안 관련 옵션을 제공합니다. AIR 응용 프로그램에서는 설정 관리자나 설정 UI를 사용할 수 없습니다.

참고: mms.cfg 파일에 지정된 모든 설정(관리자 컨트롤 참조)은 설정 관리자에 반영되지 않습니다.

설정 관리자에 대한 자세한 내용은 www.adobe.com/go/settingsmanager_kr를 참조하십시오.

사용자 Flash Player Trust 디렉토리

사용자 및 설치 프로그램은 지정된 로컬 SWF 파일을 신뢰할 수 있는 파일로 등록할 수 있습니다. 이러한 SWF 파일은 local-trusted 샌드박스에 할당되며, 다른 SWF 파일과 상호 작용하고 원격이나 로컬의 모든 위치에서 데이터를 로드할 수 있습니다. 사용자는 다음 위치에서 공유 객체 저장 영역과 동일한 디렉토리에 있는 사용자 Flash Player Trust 디렉토리에 신뢰할 수 있는 파일로 지정합니다(위치는 현재 사용자에 따라 다름).

  • Windows: app data\Macromedia\Flash Player\#Security\FlashPlayerTrust

    (예: Windows XP의 경우 C:\Documents and Settings\JohnD\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust 또는 Windows Vista의 경우 C:\Users\JohnD\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust)

    Windows에서 Application Data 폴더는 기본적으로 숨겨져 있습니다. 숨겨진 폴더와 파일을 표시하려면 [내 컴퓨터]를 선택하여 Windows 탐색기를 열고 [도구] > [폴더 옵션]을 선택한 다음 [보기] 탭을 선택합니다. [보기] 탭에서 [숨김 파일 및 폴더 표시] 라디오 버튼을 선택합니다.

  • Mac: app data/Macromedia/Flash Player/#Security/FlashPlayerTrust

    (예: /Users/JohnD/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

    이러한 설정은 현재 사용자에게만 영향을 주며 컴퓨터에 로그인한 다른 사용자에게는 적용되지 않습니다. 관리자 권한이 없는 사용자가 시스템의 자체 소유 부분에 응용 프로그램을 설치한 경우, 설치 관리자에서 사용자 Flash Player Trust 디렉토리에 이 응용 프로그램을 해당 사용자에 대해 신뢰할 수 있는 것으로 등록할 수 있습니다.

    설치 프로그램을 통해 로컬로 실행되는 SWF 파일을 배포하는 개발자의 경우, 설치 프로그램에서 사용자 Flash Player Trust 디렉토리에 구성 파일을 추가하도록 함으로써 배포하는 파일에 전체 권한을 부여할 수 있습니다. 이런 경우에도 사용자 Flash Player Trust 디렉토리 파일이 사용자 컨트롤로 간주되며, 이는 사용자 액션(설치)으로 시작되기 때문입니다.

    또한 관리자나 설치 프로그램에서 전역 Flash Player Trust 디렉토리를 사용하여 컴퓨터의 모든 사용자에 대해 응용 프로그램을 등록할 수 있습니다(관리자 컨트롤 참조).

웹 사이트 컨트롤(정책 파일)

웹 서버의 데이터를 다른 도메인의 SWF 파일에서 사용할 수 있도록 하기 위해 사용자 서버에 정책 파일을 작성할 수 있습니다. 정책 파일은 사용자 서버의 특정 위치에 배치되는 XML 파일입니다.

정책 파일은 다음을 포함하여 많은 에셋에 대한 액세스에 영향을 줍니다.

  • 비트맵, 사운드 및 비디오 데이터

  • XML 및 텍스트 파일 로드

  • 다른 보안 도메인의 SWF 파일을 로드하는 SWF 파일의 보안 도메인으로 가져오기

  • 소켓 및 XML 소켓 연결에 대한 액세스

ActionScript 객체는 문서 기반 서버 연결 및 소켓 연결의 서로 다른 두 종류의 서버 연결을 인스턴스화합니다. Loader, Sound, URLLoader 및 URLStream과 같은 ActionScript 객체는 문서 기반 연결을 인스턴스화하며 이러한 객체는 URL에서 파일을 로드합니다. ActionScript Socket 및 XMLSocket 객체는 소켓 연결을 만들어 로드된 문서가 아니라 스트리밍 데이터로 작업합니다.

Flash Player에서는 두 종류의 서버 연결을 지원하기 때문에 URL 정책 파일과 소켓 정책 파일의 두 가지 정책 파일 유형이 있습니다.
  • 문서 기반 연결에는 URL 정책 파일이 필요합니다. 이러한 파일을 통해 서버는 특정 도메인이나 모든 도메인에서 제공된 SWF 파일에 해당 데이터와 문서를 사용할 수 있음을 나타낼 수 있습니다.

  • 소켓 연결에는 Socket 및 XMLSocket 클래스를 사용하여 하위 TCP 소켓 수준에서 직접 네트워킹을 가능하게 하는 소켓 정책 파일이 필요합니다.

Flash Player에서는 정책 파일을 전송할 때 연결 시도에서 사용하려는 프로토콜과 동일한 프로토콜을 사용해야 합니다. 예를 들어 정책 파일이 HTTP 서버에 있는 경우 다른 도메인의 SWF 파일은 HTTP 서버로 데이터를 로드할 수 있습니다. 하지만 동일한 서버에 소켓 정책 파일을 제공하지 않으면 다른 도메인의 SWF 파일에서 소켓 수준의 서버에 연결할 수 없게 됩니다. 즉, 정책 파일을 가져올 때는 연결할 때와 같은 방법을 사용해야 합니다.

정책 파일 사용 및 구문은 Flash Player 10용으로 제작된 SWF 파일에 적용되기 때문에 이 단원의 나머지 부분에서 간략하게 설명합니다. 연속 릴리스에서 Flash Player 보안이 강화되었으므로 정책 파일 구현은 이전 버전의 Flash Player와 약간 다릅니다. 정책 파일에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "Flash Player 9의 정책 파일 변경 내용"을 참조하십시오.

AIR 응용 프로그램 샌드박스에서 실행되는 코드에는 URL 또는 소켓에서 데이터를 액세스하는 데 정책 파일이 필요하지 않습니다. 비 응용 프로그램 샌드박스에서 실행되는 AIR 응용 프로그램의 코드에는 정책 파일이 필요합니다.

마스터 정책 파일

기본적으로 Flash Player와 AIR 응용 프로그램 샌드박스에 있지 않은 AIR 내용은 먼저 서버의 루트 디렉토리에서 crossdomain.xml이라는 URL 정책 파일을 찾고 포트 843에서 소켓 정책 파일을 찾습니다. 이러한 위치 중 하나에 있는 파일을 마스터 정책 파일이라고 합니다. 소켓 연결의 경우 Flash Player는 기본 연결과 동일한 포트에서 소켓 정책 파일을 찾습니다. 그러나 해당 포트에 있는 정책 파일은 마스터 정책 파일로 간주되지 않습니다.

액세스 권한을 지정하는 것 외에도 마스터 정책 파일에는 메타 정책 문이 포함될 수 있습니다. 메타 정책은 정책 파일이 포함될 수 있는 위치를 지정합니다. URL 정책 파일에 대한 기본 메타 정책은 "master-only"이므로 서버에서 허용되는 정책 파일은 /crossdomain.xml뿐입니다. 소켓 정책 파일에 대한 기본 메타 정책은 "all"이므로 호스트의 모든 소켓에서 소켓 정책 파일을 제공할 수 있습니다.

참고: Flash Player 9 이전 버전에서 URL 정책 파일에 대한 기본 메타 정책은 "all"이었으므로 모든 디렉토리에 정책 파일이 포함될 수 있습니다. 기본 /crossdomain.xml 파일이 아닌 위치에서 정책 파일을 로드하는 응용 프로그램을 배포했으며 해당 응용 프로그램이 현재 Flash Player 10에서 실행 중일 수 있는 경우 사용자(또는 서버 관리자)가 추가 정책 파일을 허용하도록 마스터 정책 파일을 수정해야 합니다. 다른 메타 정책을 지정하는 방법에 대한 자세한 내용은 www.adobe.com/go/devnet_security_kr에서 Flash Player 개발자 센터 항목 "Flash Player 9의 정책 파일 변경 내용"을 참조하십시오.

SWF 파일에서 Security.loadPolicyFile() 메서드를 호출하여 다른 정책 파일 이름이나 다른 디렉토리 위치를 확인할 수 있습니다. 그러나 대상 위치에서 정책 파일을 제공할 수 있도록 마스터 정책 파일에 지정되어 있지 않으면 해당 위치에 정책 파일이 있는 경우에도 loadPolicyFile() 호출 시 아무 영향도 주지 않습니다. 정책 파일이 필요한 네트워크 작업을 시도하기 전에 loadPolicyFile()을 호출합니다. Flash Player는 자동으로 네트워킹 요청을 해당 정책 파일 시도 뒤에 대기열에 보관합니다. 따라서 예를 들어 네트워킹 작업을 시작하기 직전에 Security.loadPolicyFile()을 호출할 수 있습니다.

마스터 정책 파일을 확인할 때 Flash Player는 3초 동안 서버 응답을 기다립니다. 응답이 수신되지 않으면 Flash Player는 마스터 정책 파일이 없다고 가정합니다. 그러나 loadPolicyFile() 호출에 대한 기본 제한 시간 값은 없습니다. Flash Player는 호출되는 파일이 있다고 가정하고 파일을 로드하는 데 필요한 시간 동안 기다립니다. 따라서 마스터 정책 파일이 로드되도록 하려면 loadPolicyFile()을 사용하여 명시적으로 파일을 호출합니다.

메서드에 Security.loadPolicyFile()이란 이름이 지정된 경우에도 정책 파일이 필요한 네트워크 호출을 실행해야 정책 파일이 로드됩니다. loadPolicyFile() 호출은 단순히 정책 파일이 필요할 때 찾을 위치를 Flash Player에 알리는 기능만 합니다.

정책 파일 요청이 시작 또는 완료된 시기에 대한 알림은 받을 수 없으며 알림을 받을 이유도 없습니다. Flash Player는 비동기적으로 정책을 확인하며, 정책 파일 확인이 성공한 후 자동으로 연결을 시작합니다.

다음 단원에는 URL 정책 파일에만 적용되는 정보가 포함되어 있습니다. 소켓 정책 파일에 대한 자세한 내용은 소켓 연결을 참조하십시오.

URL 정책 파일 범위

URL 정책 파일은 정책 파일이 로드되어 있는 디렉토리와 해당 하위 디렉토리에만 적용됩니다. 루트 디렉토리에 있는 정책 파일은 전체 서버에 적용되고, 임의의 하위 디렉토리에서 로드된 정책 파일은 해당 디렉토리와 하위 디렉토리에만 적용됩니다.

정책 파일은 해당 파일이 상주하는 특정 서버에 대한 액세스에만 영향을 줍니다. 예를 들어 https://www.adobe.com:8080/crossdomain.xml에 있는 정책 파일은 HTTPS를 통해 www.adobe.com의 8080 포트에 대한 데이터 로드 호출에만 적용됩니다.

URL 정책 파일에 액세스 권한 지정

정책 파일에는 하나의 <cross-domain-policy> 태그가 있습니다. 그리고 이 태그에는 0개 이상의 <allow-access-from> 태그가 포함됩니다. 각 <allow-access-from> 태그에는 domain이라는 속성이 있습니다. 이 속성은 정확한 IP 주소, 정확한 도메인 또는 와일드카드 도메인(임의의 도메인)을 지정합니다. 와일드카드 도메인은 다음 두 가지 방법 중 하나로 표시됩니다.
  • 모든 도메인과 IP 주소를 나타내는 경우 단일 별표(*)

  • 특정 접미어로 끝나는 도메인을 나타내는 경우 접미어가 뒤에 붙은 별표

접미어는 점으로 시작해야 합니다. 그러나, 접미어를 가진 별표 문자는 앞의 점을 제외한 접미어만으로 구성되는 도메인과 일치할 수 있습니다. 예를 들어 xyz.com은 *.xyz.com에 속하는 것으로 간주됩니다. IP 도메인 형식에는 와일드카드를 사용할 수 없습니다.

다음 예제에서는 *.example.com, www.friendOfExample.com 및 192.0.34.166에서 시작되는 SWF 파일에 대한 액세스를 허용하는 URL 정책 파일을 보여 줍니다.

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*.example.com" /> 
    <allow-access-from domain="www.friendOfExample.com" /> 
    <allow-access-from domain="192.0.34.166" /> 
</cross-domain-policy>

IP 주소를 지정하면 IP 구문(예: http://65.57.83.12/flashmovie.swf)을 사용하여 해당 IP 주소에서 로드된 SWF에만 액세스 권한이 부여됩니다. 도메인 이름 구문을 사용하여 로드된 SWF에는 액세스 권한이 부여되지 않습니다. Flash Player는 DSN 이름 확인을 수행하지 않습니다.

다음 예제와 같이 모든 도메인의 문서에 액세스할 수 있도록 허용할 수 있습니다.

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy>

<allow-access-from> 태그에는 선택적인 secure 속성이 포함될 수 있으며 기본값은 true입니다. 정책 파일이 HTTPS 서버에 있을 경우 HTTPS가 아닌 서버의 SWF 파일이 HTTPS 서버에서 데이터를 로드할 수 있도록 허용하려면 이 속성을 false로 설정합니다.

secure 속성을 false로 설정하면 HTTPS에서 제공하는 보안 기능이 손상될 수 있습니다. 특히 이 속성을 false로 설정하면 보안 내용이 열려서 스누핑(snooping) 및 스푸핑(spoofing) 공격에 취약해집니다. 따라서 secure 속성을 false로 설정하지 않아야 합니다.

로드할 데이터가 HTTPS 서버에 있고, 해당 데이터를 로드하는 SWF 파일이 HTTP 서버에 있는 경우에는 로드하는 SWF 파일을 HTTPS 서버로 이동하여 HTTPS의 보호를 받아 보안 데이터의 모든 복사본을 보관하는 것이 좋습니다. 그러나 로드하는 SWF 파일을 HTTP 서버에 두기로 결정한 경우에는 다음 코드에 표시된 대로 secure="false" 속성을 <allow-access-from> 태그에 추가합니다.

<allow-access-from domain="www.example.com" secure="false" /> 
액세스를 허용하는 데 사용할 수 있는 다른 요소는 allow-http-request-headers-from 태그입니다. 이 요소는 다른 권한 도메인의 내용을 호스팅하는 클라이언트가 사용자 정의 머리글을 사용자 도메인으로 보낼 수 있도록 허용합니다. <allow-access-from> 태그는 사용자 도메인에서 데이터를 가져오는 권한을 다른 도메인에 부여하는 반면, allow-http-request-headers-from 태그는 사용자 도메인에 머리글 형태로 데이터를 밀어넣는 권한을 다른 도메인에 부여합니다. 다음 예제에서는 모든 도메인이 현재 도메인에 SOAPAction 머리글을 보낼 수 있습니다.
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction"/> 
</cross-domain-policy>

allow-http-request-headers-from 문이 마스터 정책 파일에 있으면 호스트에 있는 모든 디렉토리에 적용됩니다. 그렇지 않으면 해당 문이 포함된 정책 파일의 디렉토리와 하위 디렉토리에만 적용됩니다.

정책 파일 미리 로드

서버에서 데이터를 로드하거나 소켓에 연결하는 작업은 비동기 작업입니다. Flash Player는 기본 작업을 시작하기 전에 정책 파일의 다운로드가 완료될 때까지 기다립니다. 그러나 이미지에서 픽셀 데이터를 추출하거나 사운드에서 샘플 데이터를 추출하는 작업은 동기 작업입니다. 데이터를 추출하려면 먼저 정책 파일이 로드되어야 합니다. 미디어를 로드하는 경우에는 다음과 같이 미디어에서 정책 파일을 확인하도록 지정합니다.

  • Loader.load() 메서드를 사용하는 경우에는 LoaderContext 객체인 context 매개 변수의 checkPolicyFile 속성을 설정합니다.

  • <img> 태그를 사용하여 텍스트 필드에 이미지를 포함하는 경우, 다음과 같이 <img> 태그의 checkPolicyFile 속성을 "true"로 설정합니다.

    <img checkPolicyFile = "true" src = "example.jpg">
  • Sound.load() 메서드를 사용하는 경우에는 SoundLoaderContext 객체인 context 매개 변수의 checkPolicyFile 속성을 설정합니다.

  • NetStream 클래스를 사용하는 경우, NetStream 객체의 checkPolicyFile 속성을 설정합니다.

이 매개 변수 중 하나를 설정하는 경우에는 Flash Player에서 먼저 해당 도메인에서 이미 다운로드한 모든 정책 파일을 확인합니다. 그런 다음 서버의 기본 위치에서 정책 파일을 찾고 <allow-access-from> 문과 메타 정책이 있는지 모두 확인합니다. 마지막으로, Security.loadPolicyFile() 메서드에 대해 대기 중인 모든 호출을 검토하여 해당 범위 내에 있는지 확인합니다.

제작자(개발자) 컨트롤

보안 권한을 부여하는 데 사용되는 기본 ActionScript API는 Security.allowDomain() 메서드이며, 이 메서드를 사용하여 지정한 도메인의 SWF 파일에 권한을 부여합니다. 다음 예제에서는 SWF 파일이 www.example.com 도메인에서 제공되는 SWF 파일에 대한 액세스 권한을 부여합니다.

Security.allowDomain("www.example.com")

이 메서드는 다음과 같은 권한을 부여합니다.

Security.allowDomain() 메서드를 호출하는 주요 목적은 도메인 외부에 있는 SWF 파일에 Security.allowDomain() 메서드를 호출하는 SWF 파일을 스크립팅할 수 있는 권한을 부여하는 것입니다. 자세한 내용은 크로스 스크립팅을 참조하십시오.

Security.allowDomain() 메서드에 매개 변수로 IP 주소를 지정하더라도 지정된 IP 주소에 있는 모든 항목에 액세스가 허용되는 것은 아닙니다. 이때 해당 IP 주소에 매핑되는 도메인 이름이 아닌 URL에 지정한 IP 주소가 들어 있는 항목에만 액세스가 허용됩니다. 예를 들어 도메인 이름 www.example.com이 IP 주소 192.0.34.166으로 매핑되는 경우 Security.allowDomain("192.0.34.166")을 호출해도 www.example.com에 액세스가 허용되지 않습니다.

"*" 와일드카드를 Security.allowDomain() 메서드로 전달하여 모든 도메인에서의 액세스를 허용할 수 있습니다. 이렇게 하면 모든 도메인의 SWF 파일에 권한이 부여되어 호출하는 SWF 파일을 스크립팅하므로 "*" 와일드카드는 주의해서 사용해야 합니다.

ActionScript에는 Security.allowInsecureDomain()이라는 두 번째 권한 부여 API가 포함되어 있습니다. 이 메서드는 Security.allowDomain() 메서드와 동일한 작용을 하지만, 보안 HTTPS 연결에 의해 제공되는 SWF 파일에서 이 메서드를 호출하는 경우에 HTTP와 같이 비보안 프로토콜에서 제공되는 다른 SWF 파일에 대해서도 호출하는 SWF 파일에 대한 액세스를 추가로 허용한다는 것이 다릅니다. 그러나 보안 프로토콜(HTTPS)의 파일과 비보안 프로토콜(HTTP 등)의 파일 간에 스크립팅을 허용하는 것은 보안상 안전하지 않습니다. 이렇게 하면 보안 내용이 열려 스누핑 및 스푸핑 공격에 취약해집니다. 이러한 공격의 작동 방식은 다음과 같습니다. Security.allowInsecureDomain() 메서드는 HTTP 연결을 통해 제공되는 SWF 파일에 대해 보안 HTTPS 데이터에 대한 액세스를 허용하므로 공격자가 HTTP 서버와 사용자 간에 끼어 들어 HTTP SWF 파일을 자신의 파일로 교체함으로써 HTTPS 데이터에 액세스할 수 있게 됩니다.

중요: AIR 응용 프로그램 샌드박스에서 실행되는 코드는 Security 클래스의 allowDomain() 또는 allowInsecureDomain() 메서드를 호출하도록 허용되지 않습니다.

또 다른 중요한 보안 관련 메서드에는 Security.loadPolicyFile() 메서드가 있으며, 이를 통해 Flash Player는 비표준 위치에서 정책 파일을 확인합니다. 자세한 내용은 웹 사이트 컨트롤(정책 파일)을 참조하십시오.