일단 한마디를 하고 넘어가겠습니다.

저는 보안에 대해서 그다지 지식을 많이 가지고 있지 않지만

ActionScript 3.0 의 보안 모델은...

"참 거지같습니다."

일관성이라고는 눈을 씻고 찾아봐도 없고

융통성이라고는 코를 씻고 찾아봐도 없으니

강좌 마지막에 재미있는 에피소드를 하나 말씀드릴께요. ㅎㅎ



이런 어정쩡한 보안 모델에 대해서

처음에 맨땅에 3.0 공부할때 정말 애 많이 먹었습니다.

결국은 핵심적인 부분은 옆팀의 선준님께서 해결해주셔서 큰 무리는 없었지만

이렇게 저렇게 보안에 대해서 많이 걸리고 넘어져보니

어느정도 갈피가 서더군요.

참고로 플래시 보안모델이 정해놓은 개념이 아니라

제가 겪다보니 이런식으로 정리가 되더라~ 말이죠.

때문에 ActionScript 3.0 으로 외부 데이타를 사용할때 참고하면 내용을 정리한것이지

절대로 레퍼런스나 어도브가 권하는 정보가 아니니 분별력있게 받아들이시기를 발바니다.

자 본론으로 들어갑니다.



1. Information

보안 모델이 다루는 정보의 종류는 두가지 입니다.

 - 가공해야만 정보로써 가치가 있는 데이타.
 - 존재 자체로도 정보로써 가치가 있는 데이타.

jpg 나 flv 는 그 데이타 자체로는 우리가 어떤 정보인지 알 수 없습니다.

사진 프로그램이나 동영상 프로그램으로 돌려봐야지만 어떤 영상인지 알 수 있다는 이야기죠.

Flash 에서는 로드해서 클래스로써 감싸야지만 비로소 사용할 수 있습니다.

이런 가공해야만 정보로써 가치가 있는 데이타는 바이너리로 압축이 되어 있다는게 특징입니다.

하지만 Text, Variables(변수=값&변수=값 형태), XML 은 그 자체로도 정보로써 활용할 수 있습니다.

이렇게 정보는 두가지로 구분될 수 있습니다.



2. Use & Access

보안 모델이 판단하는 "정보의 사용"은 두가지로 나뉩니다.

 - 원본 자체를 그대로 사용하는 행위.
 - 원본에서 가공할 수 있는 데이타로 변환하는 행위.

자 말이 조금 헷갈리는데

원본 자체를 그대로 사용하는 경우는 말그대로

로드해서 걍 보여주는 겁니다.

이미지는 로드해서 Bitmap 한테 줘서 보여주고

FLV 는 스트림으로 감싸서 재생만 하고

MP3 도 사운드로 감싸서 재생만 하는겁니다.

원본에서 가공할 수 있는 데이타로 변환하는 행위는

이미지의 경우는 BitmapData.draw() 가 있을테고

사운드의 경우는 Sound.computeSpectrum() 이 있을겁니다.

이미지는 비트맵정보를 가져와 그것을 바탕으로 가공을 할 수 있을테지요.

사운드는 바이너리 정보를 가져와 사운드변형을 할 수 있을테지요.

이렇게 두가지 사용으로 나뉠수 있습니다.



3. Security don't allow all.

Flash 보안 모델의 기본은

"모든 보안을 일단 막고, 승인된 것만 풀어준다." 입니다.

우리가 아무조치를 취하지 않으면 기본적인 보안은 모두 막힌다 입니다.

단지 기본적인 보안에 해당되지 않는 보안에는 여러가지가 있겠죠.

localWithFile 이라던지 localTrusted 는 기본으로 모두 풀려있습니다.

이처럼 Flash 보안 모델은 "상당히 까다롭습니다."

Flash 보안 모델은 아래와 같이 보안을 나눌 수 있습니다.

 - 가공해야 정보로써 가치가 있는 정보를 있는 그대로 사용하는 행위는 보안을 허가한다.
 - 그외의 보안은 모두 금지한다.

즉, 이미지나 flv 를 가져와서 마냥 보여하는것은

보안이 기본적으로 풀려있습니다.

하지만 그외의 보안, 비트맵을 가져온다거나 사운드를 딴다거나(?) 하는 행위는

보안이 막혀있는 것이지요.



4. Get allow.

간단하게 말씀드리겠습니다.

제가 보안 모델에 대해서 맹비난하는 이유가 여기 있는데

보안을 푸는 방식에 있어서

참 재밌게도 일관된 방법이 전혀 없습니다.

URLLoader 는 알아서;;

Loader 는 load() 메소드 파라미터로;;

NetStream 은 프로퍼티로...;;

LocalConnection 은 별 거지같은 방법으로;;;

SWF Accessing 은 static 클래스로;;;

RTMP는 무조건 꺼지라하고...;;; (님하 매너연~)

이건 뭐 장난하는것도 아니고

보안 모델이 어려운 이유가 있었습니다.

결코 자신이 머리가 나쁜게 아니고 Flash 가 난잡하게 꼬여있었던 겁니다.

사실 저보고 일관성있게 하라그러면

도망가겠지만

그래도 이건 좀;;; 그렇지 않나요?

그렇다고 또 막아놓은것도 완전 막아놓은것도 아닙니다.

꼼수 쓰자면 후훗... 곰방하죠.

암튼 디테일한건 각자 레퍼런스형님께 여쭤보시기 바랍니다.



5. Summary

Flash 보안 모델은 일단 개념에 있어서

잘 정리되어 있어야 합니다.

그래야 정보를 다루고 복잡한 컨트롤에 있어서 체계적인 구조를 잡을 수 있을것입니다.

가장 중요한것은 정보의 종류와 사용함에 있어서의 종류.

이 두가지 구분은 알아두셔서 보안 모델을 미리 감지하고 시행착오 없으시길 바랍니다.

그럼 도움 되셨길.



6. 후원금 좀;;

가상의 후원금인데 이상하게 구걸하게 되네요 -_ㅡa

후원하고 5일후면 다시 후원할 수 있어요.

굽신굽신;;

+ Recent posts