공유 객체Flash Player 9 이상, Adobe AIR 1.0 이상 Flash Player는 공유 객체를 사용하는 기능을 제공합니다. 공유 객체는 SWF 파일의 외부에 즉, 사용자의 파일 시스템에 로컬로 또는 RTMP 서버에 원격으로 존속하는 ActionScript 객체입니다. 공유 객체는 Flash Player의 다른 미디어와 같이 보안 샌드박스로 구분됩니다. 하지만 공유 객체는 도메인 경계를 넘어 액세스할 수 있는 리소스가 아니므로 공유 객체에 대한 샌드박스 모델은 약간 다릅니다. 대신 공유 객체는 항상 SharedObject 클래스의 메서드를 호출하는 각 SWF 파일의 도메인에 대한 특정 공유 객체 저장소에서 가져옵니다. 보통 공유 객체 저장소는 SWF 파일의 도메인보다 세부적으로 구분되어 있으며, 기본적으로 각 SWF 파일은 전체 원래 URL에 대한 특정 공유 객체 저장소를 사용합니다. 공유 객체에 대한 자세한 내용은 공유 객체를 참조하십시오. SWF 파일은 SharedObject.getLocal() 및 SharedObject.getRemote() 메서드의 localPath 매개 변수를 사용하여 해당 URL의 일부와 연관된 공유 객체 저장소를 사용할 수 있습니다. 이렇게 하여 SWF 파일은 다른 URL의 다른 SWF 파일과 공유 객체 저장소를 공유할 수 있습니다. localPath 매개 변수로 '/' 를 전달하는 경우에도 해당 도메인에 대한 특정 공유 객체 저장소가 지정됩니다. 사용자는 [Flash Player 설정] 대화 상자 또는 설정 관리자를 사용하여 공유 객체 액세스를 제한할 수 있습니다. 기본적으로 도메인당 최대 100KB의 공유 객체 데이터를 만들 수 있습니다. 관리자와 사용자는 또한 파일 시스템에 대한 쓰기 권한을 제한할 수도 있습니다. 자세한 내용은 관리자 컨트롤 및 사용자 컨트롤을 참조하십시오. SharedObject.getLocal() 메서드 또는 SharedObject.getRemote() 메서드의 secure 매개 변수에 true를 지정하여 보안 공유 객체를 지정할 수 있습니다. secure 매개 변수의 다음 사항에 주의하십시오.
호출하는 SWF 파일이 HTTPS URL에 없는 경우, SharedObject.getLocal() 메서드 또는 SharedObject.getRemote() 메서드의 secure 매개 변수를 true로 지정하면 SecurityError 예외가 발생합니다. 공유 객체 저장소의 선택은 SWF 파일의 원래 URL을 기반으로 합니다. 이것은 SWF 파일이 단순 URL에서 시작되지 않은 경우 즉, 가져오기 로드 및 동적 로드의 두 상황에도 적용됩니다. 가져오기 로드는 LoaderContext.securityDomain 속성이 SecurityDomain.currentDomain으로 설정된 SWF 파일을 로드하는 경우입니다. 이 경우 로드된 SWF 파일은 로드하는 SWF 파일의 도메인에서 시작하여 실제 원래 URL을 지정하는 의사 URL을 가집니다. 동적 로드는 Loader.loadBytes() 메서드를 사용하여 SWF 파일을 로드하는 것을 말합니다. 이 경우 로드된 SWF 파일은 로드하는 SWF 파일의 전체 URL로 시작하고 뒤에 정수 ID가 있는 의사 URL을 가집니다. 가져오기 로드 및 동적 로드의 경우에서 모두, LoaderInfo.url 속성을 사용하여 SWF 파일의 의사 URL을 검사할 수 있습니다. 의사 URL은 공유 객체 저장소 선택 시 실제 URL과 동일하게 취급됩니다. 의사 URL의 일부 또는 전체를 사용하는 공유 객체 localPath 매개 변수를 지정할 수 있습니다. 사용자 및 관리자는 타사 공유 객체를 사용하지 못하도록 지정할 수 있습니다. SWF 파일의 원래 URL이 브라우저의 주소 표시줄에 표시된 URL과 다른 도메인인 경우에는 웹 브라우저에서 실행 중인 모든 SWF 파일에서 공유 객체를 사용합니다. 사용자 및 관리자는 크로스 도메인 추적을 방지하고 개인 정보를 보호하기 위해 타사 공유 객체를 사용하지 못하도록 지정할 수 있습니다. 이 제한을 피하려면 SWF 파일이 브라우저의 주소 표시줄에 표시된 도메인과 동일한 도메인에서 제공되도록 하는 HTML 페이지 구조 내에서만 공유 객체를 사용하는 SWF 파일이 로드되도록 해야 합니다. 타사 SWF 파일의 공유 객체를 사용하려고 시도하면 타사 공유 객체 사용이 비활성화되고 SharedObject.getLocal() 및 SharedObject.getRemote() 메서드에서 null을 반환합니다. 자세한 내용은 www.adobe.com/products/flashplayer/articles/thirdpartylso을 참조하십시오. |
|