본문 바로가기

Javascript

X-Frame-Options' to 'sameorigin'. 오류

자바스크립트로 웹페이지에 유튜브를 불러올 때 발생한 오류.


X-Frame 이란?


ClickJacking(새 창으로 열기) 과 같은 공격을 무력화 하기위해 X-Frame-Options 같은 확장 해더를 이용할 수 있다.
X-Frame-Options 을 통해 브라우저가 <frame>, <iframe> 혹은 <object> 태그를 렌더링 해야하는지 막아야하는지를 알려준다.
X-Frame-Options 은 다음 세가지 값 중 하나를 사용할 수 있다. 

 DENY 해당 페이지는 frame 내에서 표시할 수 없다. 
 SAMEORIGIN 해당 페이지와 동일한 orgin에 해당하는 frame 내에서 표시를 허용한다.
 ALLOW-FROM uri 해당 페이지는 지정된 orgin에 해당하는 frame 내에서 표시할 수 있다.


각 웹서버 별 X-Frame-Options 해더를 response에 추가하기 위한 방법은 다음과 같다.

Apache
Header always append X-Frame-Options SAMEORIGIN


ngnix
add_header X-Frame-Options SAMEORIGIN;


IIS Web.config
<system.webServer>
  ...
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
  ...
</system.webServer>


X-Frame-Options 는 그 명칭에서도 알 수 있듯이 확장 해더이기때문에 모든 브라우저가 해당 옵션에 대해 동작하는것은 아니다.
크롬 4.1 , IE 8 , 오페라 10.5 , 사파리 4.0 , 파이어폭스 3.6.9 이상에서는 DENY , SAMEORIGIN 이 적용되며, ALLOW-FROM 은 각 브라우저 마다 지원 현황이 다르다.


출처 : http://www.yunsobi.com/blog/612


해결방법: 

youtube url을 embed하여 가져옴.

stackoverflow 참고

'Javascript' 카테고리의 다른 글

Contenteditable 와 Input 차이  (0) 2018.04.07
JDBC와 DBCP의 차이  (0) 2018.03.27