문제

'크로스 도메인 보안'을 어떻게 열어야합니까? 그래서 페이지의 JavaScript는 다른 도메인에서 호스팅 되더라도 SWF와 자유롭게 통신 할 수 있습니까?

이 기능 통신이 기본적으로 차단되었지만 "CrossDomain.xml"이라는 파일과 ActionScript 3 기능 : System.Security.allowDomain ( "*")을 사용하여 재생함으로써 알고 있습니다. 나는 완전히 성공하지 못했고, 어느 것이 무엇을 열고 있는지 알 수있는 통찰력이 없습니다.

이 시나리오에서 생각해야 할 다른 숨겨진 보안 계층이 있습니까?

그리고이 설정을 수행하여 잠재적 해커에 대한 코드를 열고 있습니까?

(그리고 당신이 궁금하다면 : 예, 나는 가지다 HTML이 하나의 도메인에서 호스팅되는 시나리오 에서이 작업을 만들려면 JavaScript가 다른 도메인에서 외부로 추가되고 SWF는 세 번째 도메인에서 JavaScript에 의해 내장됩니다. 왜 묻지 말고, 설명하기에는 너무 복잡합니다. 나도 한 도메인에서 모든 것을 호스팅 할 수 있기를 바랍니다).

도움이 되었습니까?

해결책

사용 Security.allowDomain("www.example.com") SWF에서 www.example.com의 페이지의 JS는 SWF에 노출 된 기능을 호출 할 수 있습니다. ExternalInterface.addCallback(). 도메인과 하위 도메인은 정확히 일치해야합니다. 사용 "*" 모든 도메인이 SWF와 통신 할 수 있지만 특정 도메인이 하나 인 경우 사용하는 것이 좋습니다.

환경 allowScriptAccess 에게 always HTML 내장 코드에서 SWF는 JavaScript 함수를 호출 할 수 있습니다.

많은 개발자를 잡는 한 가지는 JavaScript가 SWF가로드 될 때까지 SWF에서 기능을 호출 할 수 없다는 것입니다. 불행히도, SWF가 준비되었는지 알려주는 JS 기반 이벤트는 없습니다 (적어도 내가 찾은 것). 이 문제를 해결하기 위해 일반적으로해야 할 일은 SWF가로드를 완료하여 페이지에 SWF가 준비되었음을 알릴 때 즉시 SWF에서 JS 기능을 호출하는 것입니다.

여기저기서 약간의 추상화가 있지만 소스 코드를 살펴 보는 경우 Yui 차트, 당신은 야후! CrossDomain JS/SWF 커뮤니케이션이 작동했습니다.

다른 팁

이전 답변에 추가 한 한 가지 : 위 코드를 시도하고 작동하지 않으면 사이트 주소에 "www"가 포함되어 있는지 확인하십시오. 내가 썼다면 내 것이 작동하지 않았고 작동하지 않았습니다.

Security.allowDomain("www.jeremy-knight.com");

나는 그것을 다음과 같이 써야했다 :

Security.allowDomain("jeremy-knight.com");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top