ActionScript 3.0 API
아웃바운드 스크립팅 및 URL 액세스(HTTP URL, mailto: 등 사용)는 다음 ActionScript 3.0 API 중 하나를 사용하여 수행합니다.
- flash.system.fscommand() 함수
- ExternalInterface.call() 메서드
- flash.net.navigateToURL() 함수
로컬로 실행되는 SWF 파일의 경우 SWF 파일 및 포함된 웹 페이지가 로컬로 신뢰할 수 있는 보안 샌드박스에 있는 경우에만 API가 성공적으로 호출됩니다. 컨텐트가 local-with-networking 또는 local-with-file 시스템 샌드박스에 있는 경우 이러한 메서드 호출이 실패합니다.
HTML 코드에서 SWF 파일을 로드하는 AllowScriptAccess 매개 변수는 SWF 파일 내에서 아웃바운드 URL 액세스를 수행하는 기능을 제어합니다. 이 매개 변수를 PARAM 또는 EMBED 태그 내에 설정합니다. AllowScriptAccess에 대한 값이 설정되지 않은 경우 SWF 파일 및 HTML 페이지가 같은 도메인에 있는 경우에만 서로 통신할 수 있습니다.
AllowScriptAccess 매개 변수는 "always", "sameDomain" 또는 "never" 값 중 하나를 가질 수 있습니다.
- AllowScriptAccess가 "always"이면 SWF 파일은 포함된 HTML 페이지와 통신할 수 있습니다. 이 규칙은 SWF 파일이 HTML 페이지와 다른 도메인에 있는 경우에도 적용됩니다.
- AllowScriptAccess가 "sameDomain"이면 SWF 파일은 SWF 파일이 같은 도메인에 있는 경우에만 포함된 HTML 페이지와 통신합니다. 이 값은 AllowScriptAccess의 기본값입니다. 한 도메인에서 호스팅되는 SWF 파일이 다른 도메인에 있는 HTML 페이지의 스크립트에 액세스할 수 없도록 하려면 이 설정을 사용합니다. 또는 AllowScriptAccess에 대한 값을 설정하지 않습니다.
- AllowScriptAccess가 "never"이면 SWF 파일이 HTML 페이지와 통신할 수 없습니다. 이 값 사용은 사용되지 않으며, 권장되지 않으므로 도메인에서 신뢰하지 않는 SWF 파일을 제공하지 않는 경우 필요하지 않습니다. 신뢰하지 않는 SWF 파일을 제공해야 하는 경우 다른 하위 도메인을 만들어서 그 도메인에 신뢰하지 않는 컨텐트를 모두 배치하는 것이 좋습니다.
navigateToURL() 함수 사용
위에서 설명한 allowScriptAccess 매개 변수에 지정된 보안 설정 외에 navigateToURL() 함수에는 두 번 째 매개 변수(옵션)가 있습니다. 이 매개 변수를 대상으로 사용하여 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 파일에 포함되어 있습니다.
키워드: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, sandbox; tn_16494
내 계정 로그인