Flash Player10 보안샌드박스 변경에 따른 이슈 해결방법 > html

본문 바로가기
사이트 내 전체검색

html

Flash Player10 보안샌드박스 변경에 따른 이슈 해결방법

페이지 정보

작성자 서방님 댓글 0건 조회 90회 작성일 08-10-22 11:29

본문

Flash Player10은 15일 비교적 조용한 분위기에서 정식 런칭되었습니다. Flash Player가 없는 클라이언트들이 Flash Player을 설치하게 되면, 가장 최신버전인 10을 설치하게 됩니다. 또, 어도비의 본사 및 각지역 지사의 Flash Player 설치버전도 10으로 높여졌습니다.

그런데, Flash Player10에서는 총 8가지의 보안샌드박스 변경/추가가 발생하였고, 이들 변경에 대한 파급력도 큽니다. 하지만, 이런 Flash Player10의 보안샌드박스 변경사항에 대해 Flash/Flex 제품군을 쓰는 고객에 사전 안내가 없었고, 또 출시된 이후에도 변경사항에 대한 공지 및 해결방법에 대한 한국어 문서 또한 아직 내놓고 있지 않은 실정입니다.

그래서 이 문서는, 현재 많은 웹사이트에서 사용하고 있는 개발방법이 Flash Player 샌드박스 변경으로 작동하지 않는 원인과 해결방법에 대해 다루어보고자 합니다.

먼저, Flash Player10의 보안샌드박스 변경사항은 아래의 문서에서 살펴보시길 바랍니다.
문서보기

아울러, 어도비에서도 이런 보안샌드박스 변경 및 해결방법에 대해 빠른시일 내로 해당 제품군들을 사용하는 고객사들에게 안내해주었으면 하는 바람입니다.



사례1. 업로더 시스템에서 UI는 HTML로 구현되어있고, 업로더는 Flash로 만들어진경우

문제
현재 많은 웹사이트에서, 업로더 시스템을 구현할때 Flash는 1x1으로 숨겨놓고, 파일 선택, 업로드부분은 자바스크립트로 Flash의 함수를 호출해 실행하고, UI는 HTML로 구현하는 방법을 사용하고 있습니다.

이 방법을 이용해 얻을수 있는 장점은, Flash를 모르는 개발자 혹은 코더라도, Flash의 구속 없이 업로더의 UI를 자유 자재로 꾸밀수 있다는 장점이 있습니다.

또, 다중 파일을 쉽게 업로드 할 수 있다는 장점도 있습니다.
01.jpg

하지만, 이 방법은 Flash Player10 출시 이후로, 정상적으로 작동하지 않으며, 위와 같은 보안샌드박스 경고가 발생하게 됩니다.


원인
Flash Player10의 Filerefrence API의 보안샌드박스가 변경 되었습니다.
파일선택과 다운로드시 사용자의 직접적인 인터렉션을 필요로 합니다.
Filerefrence.browse를 통해 사용자의 로컬의 파일을 찾는 창을 띄울수 있고, Filerefrence.download를 통해 파일을 내려 받을수 있습니다.
두 메서드의 경우 종전엔 사용자의 UI 인터렉션을 필요로 하지 않았습니다만, Flash 10에서는 사용자가 직접 UI인터렉션을 취해야 작동하게 됩니다.
Filerefrence의 browse와 download 메서드를 실행할때에는 사용자가 Flash 상에서 직접 UI인터랙션을 취해 줘야 작동하게 됩니다.

따라서, 위의 방법은 UI를 HTML로 구현되어있고, 사용자의 인터랙션이 Flash 상이 아닌곳에서 browse, download 메서드를 호출하였기 때문에, 보안샌드박스 에러가 발생하게 됩니다.


해결방법
해결방법은 간단하게도, 기존 1x1 플래시 파일에서, 파일을 선택하거나 다운로드 하는 버튼은 HTML로 구현하지 않고, Flash로 구현해 주면 해결됩니다. 다만 업로드 버튼은 이번 보안샌드박스 변경사항에 반영되지 않았기 때문에, 기존처럼 HTML로 구현해서 사용하실수 있습니다.



사례2. 클립보드 지정에서 UI는 HTML로 구현되어있고, 클립보드를 지정하는 부분은 Flash로 만들어진 경우

문제
위의 사례1처럼 UI는 HTML로 구현되어 있고, 클립보드를 지정하는 부분은 1x1 플래시로 구현되어, 클립보드를 지정할때 JS로 플래시의 함수를 호출하는 방법은 현재 많은 웹2.0 사이트 혹은, 위젯 관련 사이트에서 클립보드를 지정할때 사용하고 있습니다.

이방법을 이용해서 얻을 수 잇는 장점은, 위처럼 Flash를 모르는 개발자나 코더도 UI를 HTML로 손쉽게 꾸밀수 있습니다. 그중 제일 강력한 장점은, JS로 클립보드를 지정하는것에 비해 거의 모든 크로싱플렛폼을 완벽히 지원한다는 점입니다.
02.jpg

하지만, 이 방법은 Flash Player10 출시 이후로, 정상적으로 작동하지 않으며, 위와 같은 보안샌드박스 경고가 발생하게 됩니다.


원인
Flash Player10에서 System.setClipboard 메서드의 보안샌드박스가 변경 되었습니다.
클립보드를 지정할시 사용자의 직접적인 인터렉션을 필요로 합니다.
System.setClipboard를 통해 사용자의 클립보드에 텍스트를 지정할 수 있습니다. 종전엔 사용자의 직접적인 UI 인터렉션을 필요로 하지 않았습니다만, Flash 10에서는 사용자가 직접 UI인터렉션을 취해야 작동하게 됩니다.
위의 내용처럼, 클립보드를 지정할때엔 반드시 사용자가 직접 Flash 상에서 UI인터렉션이 발생해야 작동하게 됩니다.

따라서, 위의 방법은 UI를 HTML로 구현되어있고, 사용자의 인터랙션이 Flash 상이 아닌곳에서 System.setClipboard 메서드를 호출하였기 때문에, 보안샌드박스 에러가 발생하게 됩니다.


해결방법
해결방법은 사례1과 같이 간단하게도, 클립보드를 지정하는 부분에 대한 버튼을 Flash로 구현하면 정상적으로 작동합니다.



사례3. Policy File

문제
두개 이상의 사이트에서 어느 한 사이트의 정보를 활용하기 위해 crossdomain.xml 정책을 사용하는경우, Flash Player 9에서는 정상적으로 정보를 받아왔지만, Flash Player 10에서 일부환경에서는 정보를 받아오는데 실패하거나 보안 샌드박스 오류가 발생하게 됩니다.


원인
Flash Player의 Policy file strictness Phase2의 보안샌드박스가 변경되었습니다.
Policy File
Flash 10에서는 meta-policy의 기본값이 all에서 master-only로 바뀝니다. 이 설정은 해당 swf파일이 존재하는 도메인 루트의 crossdomain.xml을 읽어옵니다. 그러나, meta-policy를 바꿔서 예전처럼 쓸수도 있습니다.
meta-policy의 all 속성은, 모든 곳에 위치한 policy-file를 허용하지만, master-only 속성은 파일이 위치한 도메인 루트의 crossdomain.xml을 읽어오게 됩니다. meta-policy의 속성값은 아래링크를 참조하시기 바랍니다.
(참조)


해결방법
Policy File의 meta-policy의 기본 설정이 master-only로 변경되지만, crossdomain.xml의 값을 설정하여 기존 all 을 그대로 사용할 수 있습니다.
<cross-domain-policy>
     <site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>




아직, Flash Player 10의 설치율이 낮은만큼, 미리미리 파악하시어 빠른시기 내로 해결될수 있길 바랍니다.
유익한 정보가 되길 바랍니다. 감사합니다.

출처 : http://miniwini.com/miniwinis/bbs/index.php?bid=share&mode=read&id=7449

댓글목록

등록된 댓글이 없습니다.

Total 323건 14 페이지
게시물 검색

회원로그인

접속자집계

오늘
126
어제
225
최대
1,347
전체
154,885
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.