본문 바로가기

개발&컴퓨터/개발강좌

JWPlayer 강좌 (부록) - Cross Domain Problem [2/4]

반응형

부록 2번째 이슈입니다.

 

* (1) HD Quality Toggling

* (2) Cross Domain Problem

* (3) JW Player Skins

* (4) Responsive JW Player (반응형 JW Player)

 

2. Cross Domain Problem (크로스 도메인 문제)

*Adobe Flash plugin과 HTML5 브라우저 및 디바이스에서의 Javascript 와 관련된 Cross Domain File Loading (Security) 제한 이슈 발생.

 * 서비스하는 콘텐츠를 외부의 도메인에서 접근하는 것을 차단하는 것으로 WhiteList와 같은 형태로 동작.
  (WhiteList는 리스트에 명시되지 않은 모든 도메인으로부터의 접근을 제한하는 것. 반대의 개념으로 BlackList가 있는데, 이는 모든 접근을 허용하고, 접근을 차단할 것들에 대해 리스트로 명시.)

 

 

* FLASH와 HTML5는 이러한 크로스 도메인 접근 허용과 불허에 대해 다른 방법을 제공.

 

 

 

 2-1. Crossdomain in Flash
  * JavaScript 의 Cross-Site Scripting 제한과 유사하게 동작함.
  * 다음 파일에 대해 접근 권한을 제어함. 

 RSS feeds

 XML Skins

 VTT

 SRT & DFXP files

 M3U8 manifests & TS fragments

 SMIL manifests

 


 [crossdmina.xml]
  * 다른 도메인에서의 접근에 대한 제어.
  * Domain 또는 Subdomain 의 루트 경로에 위치.
     e.g.)

     http://www.myserver.com/crossdomain.xml
     http://videos.myserver.com/crossdomain.xml


 

  1) 모든 도메인에 대해 허용하는 crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" />
</cross-domain-policy> 

 

  2) 제한된 접근을 허용하는 crossdomain.xml

   - domain1.com 에 해당하는 모든 서브 도메인과 domain2.com 중에 www 서브 도메인만 접근 허용함.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*.domain1.com"/>
   <allow-access-from domain="
www.domain2.com"/>
</cross-domain-policy>

 

  * 도메인 접근 제한 외에 좀 더 세밀한 접근 정책 설정 가능 : 특정 포트 제한, HTTP Header 제한 가능.


 

- 참고URL -

Adobe Crossdomain Security Mechanism & Futher finegrain access :

http://www.adobe.com/devnet/flashplayer/security.html

 

 

 2-2. Crossdomain in Javascript

  * Flash의 Crossdomain 제어 매커니즘과 유사.
  * 다음 파일에 대해 접근 권한을 제어함.

 RSS feeds

 XML skins

 VTT

 SRT & DFXP files

 

  * 추가적인 HTTP Response Header (CORS header)를 통해 파일마다 크로스도메인 접근을 제어하는 방식.
  * 부수적으로 protocols, ports 등 제한 가능.

 

 1) 모든 도메인 접근에 대한 허용.

Access-Control-Allow-Origin: *

 

 2) 제한된 접근 허용

Access-Control-Allow-Origin: *.domain1.com www.domain2.com

 

 * Server side Code (서버 코드 JAVA) 

 response.setHeader("Access-Control-Allow-Origin","*");

 

// CORS 정보를 응답 헤더에 추가 (CORS : Cross Origin Resource Sharing)
String origin = request.getHeader(REQUEST_HEADER_ORIGIN);
if (origin != null && !origin.isEmpty())
{
    // 요청한 도메인에 대해 CORS 허용. (필요한 제한을 추가하면 됨)
    response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN, origin);

 

 

참고) Cloud-hosted Player & Crossdomain Restrictions

 * JW Player 의 Cloud-hosted 버전을 사용할 경우, JW Player CDN 에 접근해야 하므로, 서비스 사이트에서 JW Player의 CDN에 대한 크로스 도메인 제한 관련 처리 필요!

 * 아래의 코드를 추가하여 *.jwpcdn.com 의 접근을 허용해야 함.

allow-access-from domain="*.jwpcdn.com"

 

 

 

 

 

반응형