2009-11-02 2 views
0

최근에 Flash 응용 프로그램을 서버에 배포했으며 HTTPService 요청을 만들 때 오류가 발생했습니다. 나는 wwwroot 폴더에서 가능한 가장 확실한 crossdomain.xml이라고 생각하는 것을 넣었으며 여전히 오류가 발생합니다.flash security Error crossdomain.xml을 사용하여 URL에 액세스

흥미롭게도 오류는 요청이 직접적인 사용자 상호 작용 (즉, 버튼 클릭)으로 이루어진 경우에만 발생하는 것으로 보입니다. 응용 프로그램은 다른 수단 (예 : creationComplete)에 의해 시작된 다른 요청을 만들어 예상대로 작동하는 것 같습니다.

누구나 crossdomain.xml에 문제가 있거나 다른 제안 사항이 있으십니까?

오류 메시지

[RPC 오류 faultString으로 = "보안 오류에 접속 URL"faultCode를 = "Channel.Security.Error"faultDetail = "대상 : DefaultHTTP"] mx.rpc에서 :: AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler() 에서 flash.events::EventDispatcher/에서 flash.events::EventDispatcher/dispatchEventFunction() 에서 mx.rpc :: 응답자/오류() mx.rpc의 :: AsyncRequest/DirectHTTPMessageResponder/securityErrorHandler (에서 오류() ) dispatchEvent() at flash.net::URLLoader/redirectEvent()

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all" /> 
<allow-access-from domain="*" secure="false" /> 
<allow-http-request-headers-from domain="*" headers="*" secure="false" /> 
</cross-domain-policy> 

답변

1

크로스 도메인 정책 파일은 심각한 보안 허점을 열 수 있으므로주의해야합니다. 쿠키 또는 기본 인증을 사용하는 사이트에서는 * 정책을 사용하지 않아야하며 인트라넷 서버에는 * 정책을 사용하지 마십시오.

이러한 보안 문제를 피하고 작업을 수행하는 가장 쉬운 방법은 SWF가로드되는 URL과 요청이 만들어진 URL이 동일한 프로토콜, 호스트 이름 및 포트 (지정된 경우)인지 확인하는 것입니다. . 서로 다르면 프록시를 사용하여 동일하게 보이도록 조사해야합니다. BlazeDS 또는 Apache 차단 기능을 프록시로 쉽게 설정할 수 있습니다.

+0

crossdomain.xml을 엄격하게 제한하는 것이 왜 중요한지 자세히 설명해 주시겠습니까? 플래시를 사용하는 것 외에 다른 사람의 서버를 공격하는 훨씬 쉬운 방법이있는 것처럼 보입니다. – Osman

+0

이것이 중요한 이유입니다. http://tech.slashdot.org/story/09/11/05/1552204/Facebook-and-MySpace-Backdoors-Found-Fixed –

+0

AJAX가 크로스 도메인 스크립팅을 허용하지 않기 때문에 Ahh ok입니다. – Osman

0

메모장이 열린 설정 파일을 시도 HTTP를 교체 : // 서버 이름 /는 ArcGIS/휴식/서비스/BaseMap에/맵 서버/# 를 http : // serverip로 /는 ArcGIS/휴식/서비스/BaseMap/MapServer/#

관련 문제