아웃바운드 URL 액세스 제어

Flash Player 9 이상, Adobe AIR 1.0 이상

아웃바운드 스크립팅 및 URL 액세스(HTTP URL, mailto: 등 사용)는 다음 API를 사용하여 수행됩니다.

  • flash.system.fscommand() 함수

  • ExternalInterface.call() 메서드

  • flash.net.navigateToURL() 함수

로컬 파일 시스템에서 로드된 내용의 경우 코드 및 포함 웹 페이지(있는 경우)가 local-trusted 또는 AIR 응용 프로그램 보안 샌드박스에 있는 이러한 메서드 호출이 성공합니다. 내용이 local-with-networking 또는 local-with-filesystem 샌드박스에 있는 경우에는 해당 메서드에 대한 호출이 실패합니다.

로컬에서 로드되지 않은 내용의 경우 아래에 설명된 AllowScriptAccess 매개 변수의 값에 따라 이러한 모든 API가 포함된 웹 페이지와 통신할 수 있습니다. flash.net.navigateToURL() 함수에는 SWF 파일이 포함된 페이지뿐 아니라 열려 있는 모든 브라우저 윈도우나 프레임과 통신할 수 있는 추가 기능이 있습니다. 이 기능에 대한 자세한 내용은 navigateToURL() 함수 사용을 참조하십시오.

SWF 파일을 로드하는 HTML 코드의 AllowScriptAccess 매개 변수는 SWF 파일 내에서 URL 액세스를 수행하는 기능을 제어합니다. PARAM 또는 EMBED 태그 내부에 이 매개 변수를 설정합니다. AllowScriptAccess에 대해 값이 설정되지 않은 경우 SWF 파일과 HTML 페이지가 동일한 도메인에 속해 있는 경우에만 서로 통신할 수 있습니다.

AllowScriptAccess 매개 변수는 가능한 세 가지 값, "always", "sameDomain" 또는 "never" 중 하나를 가질 수 있습니다.
  • AllowScriptAccess"always"이면 SWF 파일은 HTML 페이지와 다른 도메인에 있는 경우에도 SWF 파일이 포함된 HTML 페이지와 통신할 수 있습니다.

  • AllowScriptAccess"sameDomain"이면 SWF 파일은 HTML 페이지와 동일한 도메인에 속해 있는 경우에만 SWF 파일이 포함된 HTML 페이지와 통신할 수 있습니다. 이 값이 AllowScriptAccess의 기본값입니다. 한 도메인에 호스팅된 SWF 파일이 다른 도메인에 속해 있는 HTML 페이지의 스크립트에 액세스할 수 없도록 하려면 이 설정을 사용하거나 AllowScriptAccess 값을 설정하지 마십시오.

  • AllowScriptAccess"never"이면 SWF 파일에서 어떠한 HTML 페이지와도 통신할 수 없습니다. Adobe Flash CS4 Professional 릴리스 이후부터 이 값은 사용되지 않습니다. 따라서 이 값은 더 이상 사용하지 않는 것이 좋으며 사용자의 도메인에서 신뢰할 수 없는 SWF 파일을 제공하지 않는 한 이 값은 필요하지 않습니다. 신뢰할 수 없는 SWF 파일을 불가피하게 제공해야 하는 경우 신뢰할 수 없는 모든 내용을 배치할 별도의 하위 도메인을 만드는 것이 좋습니다.

다음은 HTML 페이지에 AllowScriptAccess 태그를 설정하여 다른 도메인에 대한 아웃바운드 URL 액세스를 허용하는 예제입니다.

<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'> 
<param name='AllowScriptAccess' value='always'/> 
<param name='src' value=''MyMovie.swf'/> 
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/> 
</object> 

navigateToURL() 함수 사용

위에서 설명한 allowScriptAccess 매개 변수로 지정된 보안 설정 외에도 navigateToURL() 함수에는 선택적인 두 번째 매개 변수 target이 있습니다. target 매개 변수를 사용하여 URL 요청을 보낼 HTML 윈도우 또는 프레임의 이름을 지정할 수 있습니다. 이러한 요청에는 추가 보안 제한이 적용되며, 제한 사항은 navigateToURL()이 스크립팅 또는 비스크립팅 문으로 사용되는지에 따라 달라집니다.

navigateToURL("javascript: alert('Hello from Flash Player.')")과 같은 스크립팅 문의 경우 다음 규칙이 적용됩니다.

  • SWF 파일이 로컬에서 신뢰할 수 있는 파일인 경우 요청이 성공합니다.

  • SWF 파일이 포함된 HTML 페이지가 대상인 경우 위에서 설명한 allowScriptAccess 규칙이 적용됩니다.

  • 대상이 SWF 파일과 동일한 도메인에서 로드된 내용을 포함하는 경우 요청이 성공합니다.

  • 대상이 SWF 파일과 다른 도메인에서 로드된 내용을 포함하며 앞의 두 조건이 하나도 충족되지 않을 경우 요청이 실패합니다.

비스크립팅 문(예: HTTP, HTTPS 및 mailto:)의 경우 다음 조건이 모두 충족되면 요청이 실패합니다.

  • 대상이 특수 키워드 "_top" 또는 "_parent" 중 하나인 경우

  • SWF 파일이 다른 도메인에서 호스팅된 웹 페이지에 있는 경우

  • allowScriptAccess의 값이 "always"가 아닌 상태로 SWF 파일이 포함된 경우

자세한 내용

아웃바운드 URL 액세스에 대한 자세한 내용은 ActionScript 3.0 Reference for the Adobe Flash Platform 의 다음 항목을 참조하십시오.