실버라이트 2에서 가장 크게 바뀐 점 중 하나는 URL 접근에 대한 정책이 기본적인 보안에 대해 안전하면서도 보다 구체적이고 융통성있도록 구성되었다는 점이죠. 특히 실버라이트를 테스트할 때에는 잘 되다가 게시했을 때 안되는 문제의 많은 부분이 바로 URL 접근과 관련하여 일어나는데요, MSDN에 명확하게 정리된 문서가 있어서 번역해봤어요.
원본 : http://msdn2.microsoft.com/en-us/library/cc189008(vs.95).aspx
번역 : http://gongdosoft.com/254
보안 문제 때문에 마이크로소프트 실버라이트는 쿠키 전달이나 재전송redirection 허용과 같은 보안에 위협이 될만한 것들에 대한 크로스 존Cross-zone, 크로스 도메인, 크로스 스키마 URL 접근을 제한합니다. 예를 들어, 한 웹 도메인에 호스팅된 실버라이트 기반의 애플리케이션을 가지고 있고 WebClient 개체를 사용하여 다른 도메인에 저장되어 있는 파일에 접근을 시도한다면 그 요청은 실패할 것입니다. 다음 테이블에서 이러한 룰을 정리합니다.
Note:
실버라이트로 다른 도메인의 파일을 접근할 수도 있습니다. 그렇게 하기 위해서는 이 기능을 명시적으로 활성화할 필요가 있습니다. 보다 자세한 정보는 여기를 클릭하세요.
| |
WebClient object |
Media, images, ASX |
XAML files, Font files |
Streaming media |
| 허용된 스키마 |
HTTP, HTTPS |
HTTP, HTTPS, FILE |
HTTP, HTTPS, FILE |
HTTP |
| 크로스 스키마 접근 |
No |
No |
No |
HTTPS로부터는 안됨 |
| 크로스 웹 도메인 접근 |
No |
HTTPS가 아닐 경우 Yes |
No |
Yes |
| 크로스 존 접근(Windows에서) |
No |
No |
No |
No |
| 크로스 존 접근(Macintosh에서) |
No |
Yes |
No |
Yes |
| 재전송 허용 |
같은 도메인에서 |
Yes |
같은 도메인에서 |
No |
Note:
이러한 접근 정책의 위반으로 인한 결과로 발생한 에러가 있을 때 그 에러는 아마도 정확한 이유를 가리키지 않을 것입니다.
앞에서 본 표에서 사용된 몇몇 용어의 정의는 다음과 같습니다.
- 크로스 스키마Cross-scheme : 어떤 스키마(예를 들어 HTTP, HTTPS)에서 다른 스키마를 접근하는 것.
- 크로스 웹 도메인Cross-Web domain : 어떤 웹 도메인과 다른 웹 도메인 사이의 접근(예를 들어 www.contoso.com에 호스팅된 애플리케이션이 www.fabrikam.com에 있는 콘텐트에 대한 접근을 시도).
- 크로스 존Cross-zone : 보안 영역간의 접근. 예를 들어 인터넷 서버에서 인트라넷 리소스에 접근을 시도하는 것.
예를 들어, 애플리케이션을 호스트하고 이미지를 다른 서버에서 가져오고 싶다면 앞에서 본 표에 있는 "Media, images, ASX" 항목을 체크해볼 수 있습니다.
- 만약 애플리케이션이 HTTP 사이트에 호스팅된다면 HTTPS 스키마를 사용한 사이트에서 이미지를 가져올 수 없습니다.
- 그 도메인의 스키마가 HTTPS가 아닌 한 다른 도메인에서 이미지를 가져올 수 있습니다.
- 만약 애플리케이션이 인터넷에 있고 사용자가 Mac을 사용하지 않는다면 이미지를 인트라넷에서 가져올 수 없습니다.
- URL이 같은 도메인에 있는 한 다른 이미지 URL로 재전송할 수 있습니다.
참고
컨셉
미디어 포맷 및 프로토콜 지원(실버라이트 2)
코어 프리젠테이션 프레임워크 / UI