Flash CS3 설명서 |
|||
| ActionScript 3.0 프로그래밍 > Flash Player 보안 > 데이터 로드 | |||
SWF 파일은 서버에서 ActionScript로 데이터를 로드하고 ActionScript에서 서버로 데이터를 보낼 수 있습니다. 로드된 정보가 미디어로 표시되지 않고 ActionScript에 직접 표시되므로, 데이터 로드 작업은 미디어 로드 작업과는 다릅니다. 일반적으로 SWF 파일은 자체 도메인에서 데이터를 로드할 수 있습니다. 그러나 다른 도메인에서 데이터를 로드하려면 보통 크로스 도메인 정책 파일이 필요합니다.
XML 파일이나 텍스트 파일과 같은 데이터를 로드할 수 있습니다. URLLoader 및 URLStream 클래스의 load() 메서드는 크로스 도메인 정책 파일 권한으로 제어합니다.
load() 메서드를 사용하여 해당 메서드를 호출하는 SWF 파일의 도메인이 아닌 다른 도메인의 내용을 로드하는 경우, Flash Player는 로드되는 에셋의 서버에서 크로스 도메인 정책 파일을 확인합니다. 크로스 도메인 정책 파일이 있으면 로드하는 SWF 파일의 도메인에 대한 액세스가 허용되고 데이터를 로드할 수 있습니다.
소켓 및 XML 소켓 연결에 대한 크로스 도메인 액세스는 기본적으로 비활성화됩니다. 또한 1024 미만의 포트에서 SWF 파일과 동일한 도메인에 있는 소켓 연결에 대한 액세스도 기본적으로 비활성화됩니다. 사용자는 다음 위치에서 크로스 도메인 정책 파일을 제공하여 이러한 포트에 대한 액세스를 허용할 수 있습니다.
기본 소켓 연결과 동일한 포트 또는 다른 포트에서 크로스 도메인 정책 파일을 제공하는 경우, 다음 예제와 같이 크로스 도메인 정책 파일의 to-ports 속성을 사용하여 허용되는 포트를 열거할 수 있습니다.
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <!-- Policy file for xmlsocket://socks.mysite.com --> <cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.example.com" to-ports="507,516" /> <allow-access-from domain="*.example.org" to-ports="516-523" /> <allow-access-from domain="adobe.com" to-ports="507,516-523" /> <allow-access-from domain="192.0.34.166" to-ports="*" /> </cross-domain-policy>
기본 소켓 연결과 동일한 포트에서 소켓 정책 파일을 가져오려면 단순히 Socket.connect() 또는 XMLSocket.connect() 메서드를 호출합니다. 지정된 도메인이 호출하는 SWF 파일의 도메인과 다른 경우 Flash Player에서는 자동으로 사용자가 연결하려는 기본 연결과 동일한 포트에서 정책 파일을 가져오려고 시도합니다. 기본 연결과 동일한 서버의 다른 포트에서 소켓 정책 파일을 가져오려면, 다음과 같이 특수 "xmlsocket" 구문을 사용하여 Security.loadPolicyFile() 메서드를 호출합니다.
Security.loadPolicyFile("xmlsocket://server.com:2525");
Security.loadPolicyFile() 메서드를 Socket.connect() 또는 XMLSocket.connect() 메서드보다 먼저 호출합니다. 그러면 Flash Player은 정책 파일 요청이 수행될 때까지 기다렸다가 기본 연결을 허용할지 여부를 결정합니다.
소켓 서버를 구현하고 소켓 정책 파일을 제공해야 할 필요가 있는 경우에는 기본 연결을 허용하는 포트와 동일한 포트를 사용하여 정책 파일을 제공할지 아니면 다른 포트에서 정책 파일을 제공할지 여부를 결정합니다. 두 경우 모두 서버는 클라이언트에서 첫 번째 전송을 수행할 때까지 기다렸다가 정책 파일을 보낼지 또는 기본 연결을 설정할지 여부를 결정합니다. Flash Player에서 정책 파일을 요청할 때는 항상 연결이 설정된 직후에 다음 문자열을 전송합니다.
<policy-file-request/>
서버는 이 문자열을 수신한 후 정책 파일을 전송할 수 있습니다. 정책 파일 요청과 기본 연결 모두에 동일한 연결을 다시 사용하지 마십시오. 정책 파일을 전송한 후에는 해당 연결을 닫아야 합니다. 연결을 닫지 않으면, Flash Player에서 기본 연결을 설정하기 위해 다시 연결하기 전에 정책 파일 연결을 닫습니다.
자세한 내용은 소켓 정책 파일을 참조하십시오.
데이터 전송은 SWF 파일의 ActionScript 코드에서 서버 또는 리소스에 데이터를 보낼 때 발생합니다. 네트워크 도메인 SWF 파일에는 데이터 전송이 항상 허용됩니다. 로컬 SWF 파일은 local-trusted 또는 local-with-networking 샌드박스에 있는 경우에만 네트워크 주소로 데이터를 보낼 수 있습니다. 자세한 내용은 로컬 샌드박스를 참조하십시오.
flash.net.sendToURL() 함수를 사용하여 URL로 데이터를 보낼 수 있습니다. 기타 메서드를 사용하여 URL로 요청을 보낼 수도 있습니다. 여기에는 Loader.load() 및 Sound.load()와 같은 로드 메서드, URLLoader.load() 및 URLStream.load()와 같은 데이터 로드 메서드가 포함됩니다.
FileReference.upload() 메서드는 원격 서버로 사용자가 선택한 파일의 업로드를 시작합니다. FileReference.browse() 또는 FileReferenceList.browse() 메서드는 FileReference.upload() 메서드보다 먼저 호출해야 합니다.
FileReference.download() 메서드를 호출하면 원격 서버에서 파일을 다운로드할 수 있는 대화 상자가 열립니다.
|
중요 |
|
서버에 사용자 인증이 필요한 경우 브라우저에서 실행 중인, 즉 브라우저 플러그 인이나 ActiveX 컨트롤을 사용하는 SWF 파일만이 인증 및 다운로드에 필요한 사용자 이름과 암호를 요청하는 대화 상자를 제공할 수 있습니다. Flash Player는 사용자 인증을 요청하는 서버에 대한 업로드를 허용하지 않습니다. |
호출하는 SWF 파일이 local-with-filesystem 샌드박스에 있는 경우에는 업로드 및 다운로드가 허용되지 않습니다.
기본적으로 SWF 파일은 자체 서버가 아닌 서버에서의 업로드나 다운로드를 시작하지 않습니다. 호출하는 SWF 파일의 도메인에 권한을 부여하는 크로스 도메인 정책 파일이 서버에서 제공되는 경우, SWF 파일은 다른 서버로부터의 업로드 및 다운로드를 허용합니다.
Flash CS3
이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서
현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/main/00000356.html