2013-04-27 1 views
3

요즘 웹을 크롤링했지만 302 리디렉션의 경우 crossdomain.xml 파일의 동작에 대한 정확한 정보를 얻을 수 없었습니다. 특히 샌드 박스가 마지막 버전에서 크게 변경되었습니다!AS3의 302 리디렉션에 대한 교차 도메인 정책 동작

나는 비교적 새로운 플래시입니다 ... 그래서 어떤 조언도 감사드립니다!

저는 CDN 배포판에서 오디오 스트림을 사용하는 프로젝트를 진행하고 있습니다! 공통 URL이 트리거 된 다음 사용자가 사용할 수있는 차선의 서버로 동적으로 리디렉션된다는 것입니다. 제 경우에는 서버 측에서 액세스 할 수 없습니다 (적어도 조만간). 적절한 crossdomain.xml을 제공하는 유일한 경로는 리디렉션을 수행하는 경로입니다. 다른 모든 동적 경로는 독점적으로 콘텐츠를 제공합니다!

http://resource.domain.com (valid crossdomain.xml) 

    302 => http://dyn1.domain.com/... 

    302 => http://dyn2.domain.com/... 

    302 => http://dyn3.domain.com/... 

나는 내가 무엇인가 등으로 오디오 스트림을로드하려고하면 플래시가 ...

그것은 모두 리디렉션을 얻는다
var req :URLRequest = new URLRequest("http://resource.domain.com"); 

var sound :Sound = new Sound(req); // ie. effectively playing http://dyn3.domain.com 

sound.play(); 

을 크게 신경 쓰지 않는 것으로 나타났습니다 및 스트리밍은 잘! 어떤 crossdomain 파일도 신경 쓰지 않고 재생을 시작합니다!

요청에 대한 일부 맞춤 헤더를 설정하고 URLStream을 사용하여 파일을로드하는 것과 같이 다른 것을 시도해도 모든 것이 지저분 해집니다. 예상대로 리디렉션이 완료되었지만 갑자기 리디렉션 된 위치에 다른 크로스 도메인 파일이 필요합니다.

무슨 일이 일어나고 있는지, 결국 어떻게 해결할 지에 대한 설명이 있습니까?!

시간 내 주셔서 감사합니다.


이 사이트 질문 온다 : 내가 local-trusted 샌드 박스에있는 오류 원격 샌드 박스에 주로하지 않을 경우에만 일어나는 동안 완벽하게 작동하는 모든 것을 알아 차렸다. local-trusted 샌드 박스가 crossdomain 정책 파일을 전혀 신경 쓰지 않을 가능성이 있습니까?

답변

3

요약

각 CDN 호스트에 crossdomain.xml을 추가하거나 제한 Sound 기능을 채택한다.

세부

  1. SWF files that are assigned to the local-trusted sandbox can interact with any other SWF files and can load data from anywhere (remote or local).

  2. Sound 다른 도메인 that don't allow access using cross-domain policy with certain restrictions에서 물건을로드 할 수 있습니다 : 사운드 처리

    특정 작업이 제한됩니다. 크로스 도메인 정책 파일을 구현하지 않으면 다른 도메인의 파일에서 사운드를로드 한 의 데이터에 액세스 할 수 없습니다. 이 제한하에 에 해당하는 사운드 관련 API는 Sound.id3, SoundMixer.computeSpectrum(), SoundMixer.bufferTime 및 SoundTransform 클래스입니다.

    3.1 : 일반적으로

  3. 플래시 꽤 complex cross-domain policies하지만 귀하의 경우 하단 라인을 사용하면 SWF를 제공하는 일을 제외하고 각 호스트에 적절한 crossdmain.xml을해야한다는 것입니다있다. 파일이 http://resource.domain.com에서 제공되는 경우 http://resource.domain.com/crossdomain.xml 일 필요는 없지만 really good to have one입니다.

    3.2. SWF가 dyn2.domain.com에 액세스 할 수 있도록 명시 적으로 허용하는 http://dyn2.domain.com/crossdomain.xml이 있어야 URLLoader 및 원시 로딩 된 데이터에 대한 액세스를 제공하는 다른 API를 사용할 수 있어야합니다.

    3.3. 이러한 제한에는 쿠키 (및 기타 주변 사용자 자격 증명)가 있습니다. Flash가 리디렉션 후에 적절한 교차 도메인을 요구하지 않으면 먼저 자신의 리디렉터를로드하기 만하면 사용자 쿠키가 첨부 된 도메인에 액세스 할 수 있습니다. This means accessing all user cookie-protected data (e.g. mail.google.com) from any SWF on the internet that's running in your browser.

+0

감사합니다. 매우 명확하고 유용합니다! – Ivo

관련 문제