글
Working 2007/12/21 15:24Flash개발자는 필독! Flash Player 9의 Security정책 변경
특히 policy file에 대한 것이 많이 바뀌였습니다.
나름 변화의 폭이 커서 이번 Security정책 변화는 2단계로 이루어집니다.
- 1단계 - Flash Player 9.0.115.0 (바로 지금 버젼입니다.) 일부 소규모의 즉각적인 제한조치. 변화되는 대부분의 내용은 warning으로 처리. Debug버젼의 Player에서 확인이 가능합니다.
- 2단계 - 다음 release에서 반영됨. 1단계에서의 warning이 모두 error로 변경됨
- 즉시 해야할 일 - 즉각적 제한에 대한 확인 그리고 수정
- 시간이 허용될 때 - meta-policies관련 사항 check!, meta-policy반영
- 역시 시간이 허용될 때 - socket policy file확인, socket policy file반영
즉각적인 변화
- Malformed policy file
- 9.0.47.0에서 반영된 것이지만 9.0.115.0부터는 새로운 logging mechanism을 통해 쉽게 문제확인이 가능함
- 적절하지 않은 format의 policy file은 무조건 reject!
- 예1)
<cross-domain-policy>앞에 text가 존제 - 예2)
</cross-domain-policy>뒤에 text가 존제 - 예3) XML top-level이
<cross-domain-policy>가 아닌 경우 - 예4) 코멘트가 아닌 어떤 text정보가 tag안에 있을 경우
- 예1)
- Within-domiain redirects
- 지금까지 Flash Player가 policy파일을 요청할 때 http server가 다른 domain으로 redirect를 할 경우 policy file을 무시해왔음. 같은 domain일 경우는 허용되었음. 그리고 그 처음 요청한 location을 effective location으로 간주했었음.
- 9.0.115.0에서는 여전히 redirceting을 허용하지만 마지막 location을 effective location으로 간주함.
- 지금까지 Flash Player가 policy파일을 요청할 때 http server가 다른 domain으로 redirect를 할 경우 policy file을 무시해왔음. 같은 domain일 경우는 허용되었음. 그리고 그 처음 요청한 location을 effective location으로 간주했었음.
- Content-type whitelist
- 9.0.115.0부터 Content-Type값이 없이 들어오는 HTTP policy file은 무시함
- 허용하는 Content-Type은
- text/*
- application/xml
- application/xhtml+xml
- Strict Sockets
- 9.0.115.0부터 Socket Policy을 위한 더 재한적인 rule을 정의
- 이전은 같은 Domain의 높은 port로의 socket connection은 policy파일 없이 가능하였음
- 이전은 http policy file의 정의에 따라 높은 port로의 socket connection이 가능하였음
- 9.0.115.0부터는 어떤 socket connection도 socket policy file가 필요.
이 정도가 이번에 도입된 즉각적인 변화라고 하지만 좀 더 많은 부분에 policy file의 적용을 받도록 한 듯 합니다. 일 예로 제 Blog의 flash는 아주 old fashion한 방법. _root.getURL을 통해서 페이지를 이동하도록 했습니다만 domain이 다른 cfs.tistory.com에 존재하는 swf파일은 더 이상 policy file 정의 없이 다른 domain 그러니까 i-dreaming.com안에서 페이지를 이동하게 되는 getURL을 호출할 수 없게 되었습니다.
아주 쉬운 방법은 embeding하실 때 allowScriptAccess="always"를 추가하는 방법입니다. javascript를 통한 꽁수도 생각을 해봤습니다만 아 그리고 시도도 해봤습니다만 역시나 allowScriptAccess선언이 없을 경우 실행도 안되는 상황이니....
그리고 새롭게 도입된 META-POLICIES
한마디로 policy파일들을 위한 policy파일입니다. "Policy on Policies"
즉 policy file을 허용/비허용/특별한 파일들만 허용 등 policy file자체에 대한 제한입니다. Flash Player를 위한 content가 없는 경우에도 방어책으로 쓸 수 있다는 설명입니다.
자세한 내용은 Flash Player Developer Center에서 Deneb Meketa의 Security changes in Flash Player 9를 참고하십시요. 아 그리고 logging쪽은 확실하게 개선이 되었습니다. 이젠 왜 그런 움직임을 보이는지 상상하지 않고 확인이 가능하게 되었습니다. 나름 다행!
ps) 이전의 security whitepaper를 보면 안되야 정상인 듯 보이는 많은 부분이 이제 안되게 된 것으로 보입니다. 그렇지만 그런 구멍을 이용해서 많은 일들을 했던 것 또한 현실입니다. 확인 작업을 하신 후 변경하셔야 하지 싶습니다. 이젠 좀 Sandbox처럼 보입니다. 예전은... 이해하기 힘든 모습이였죠. 저희 팀원은 "Java같네 이젠"이란 반응을... ^^;
머리는 깨운해 지는데 한편으로는 조금 아쉽기도 하군요.
'Working' 카테고리의 다른 글
| MS가 Yahoo!에게 인수를 공개 제안했습니다! (그리고 그냥 하는 이야기는 아닌 모양입니다.) (0) | 2008/02/02 |
|---|---|
| 2008년 온라인 비디오 - 동영상 서비스 대예측! (3) | 2008/01/04 |
| Flash개발자는 필독! Flash Player 9의 Security정책 변경 (0) | 2007/12/21 |
| Google은 여러분의 동영상을 인덱싱하고 싶어요. (0) | 2007/12/20 |
| 구글맵은 진화중 - from Map to Social Platform (2) | 2007/12/13 |
| 동영상 서비스에 Adobe발 폭탄! Flash Media Server 3 발표 (6) | 2007/12/05 |
RECENT COMMENT