IT

플래시8 새 보안정책

by MoA posted Dec 12, 2005
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
http://www.macromedia.com/kr/devnet/flash/articles/fplayer8_security.html



플래시 8 에서 많은 것들이 바뀌었지만 가장 현재 민감한 부분인 보안에 관련된 글이 8이 발표 되고 개발자 센터의 글 중 가장빨리  올라 왔는데 아주 빨리 플래시 8 의 보안정책에 대한 글이 번역이 되어서 올라 왔다.



새 제한 사항은 다음과 같은데



로컬 샌드박스: 기본적으로 로컬 SWF는 더 이상 인터넷에 연결하거나, HTTP 통신을 수행하거나 로컬 HTML 파일과 통신할 수 없습니다. SWF 7 이전 버전에서 이와 같은 작업을 수행하려고 시도하면 경고 대화 상자에 해당 작업을 수행할 수 없다는 메시지가 표시됩니다. 이 대화 상자의 모양이나 기존 내용에서 깨진 부분은 최종 사용자나 Flash 개발자가 알맞은 권한을 부여해서 수정할 수 있습니다.
로드 제한 사항: 이제 로컬이 아닌 URL의 SWF 및 HTML 내용에서 로컬 경로의 내용(SWF, HTML, PNG 등)을 로드할 수 없습니다.
타사 저장소: 이제 Flash Player 사용자는 타사 SWF(브라우저의 주소 표시줄에 표시된 도메인과 다른 도메인의 SWF)에서 영구 공유 객체를 읽거나 쓰지 못하도록 선택할 수 있습니다. 이 제한 사항은 기본적으로 적용되지 않으므로 사용자가 적용 여부를 미리 결정해야 합니다.
allowScriptAccess 기본값: SWF 8 이상 버전에서 HTML allowScriptAccess 매개 변수의 기본값은 "always"가 아니라 "sameDomain"입니다. 이것은 SWF 7 이전 버전에는 적용되지 않습니다. allowScriptAccess 매개 변수는 SWF에서 HTML 페이지의 JavaScript를 호출할지 여부를 제어합니다.


로드 제한 사항때문에 많은 Application 에서 로컬의 JPG 파일을 읽어 오지 못하는 경우가 발생하고 있다.

또한 allowScriptAccess 기본값 때문에 기본적으로 javaScript 을 호출하지 못한다.



해결방안..



로드 제한 사항..



웹에서 이때까지 로컬에 있는 jpg 또는 mp3 를 선택해서 바로 웹상에 있는 플래시 플래이어를 통해 듣기 또는 jpg 이미지를 로컬에서 로드무비 하는것처럼 로드를 할 수 있었다.

이와 같이 한 이유는 업로드 되는 시간을 없애고 바로 바로 확인 할 수 있기 떄문에

서버 사이드 언어를 통해 로컬 경로를 받아 기다리는 시간 없이 확인을 할 수 있는점 떄문이다.



하지만 이제는 반드시 웹상으로 업로드를 시킨후 다시 웹상의 경로를 받아서 보여주어야만 한다.



자바스크립 함수의 호출



자바스크립 함수를 호출할려면

가장 쉬운 방법은 allowScriptAccess=always 로 바꾸어 주어야 한다.

그럼 이전 버젼과 마찬가지로 자바스크립 함수를 호출 할 수 있다.

아래는 html 에서 swf 를 임베드 하는 소스이다..



<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>Untitled-1</title>
</head>
<body bgcolor="#ffffff">
<!--url's used in the movie-->
<!--text used in the movie-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="Untitled-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Untitled-1.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="Untitled-1.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="Untitled-1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>


위의 빨간 부분을  다음과 같이 바꾸어 주어야 한다.

"allowScriptAccess" value="always"



다른 방법은 8에서 새로 나온 클래스로

ExternalInterface 를 이용하자..