X-Frame-Options 와 ClickJacking

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에 추가하기 위한 방법은 다음과 같다.
Header always append X-Frame-Options SAMEORIGIN

add_header X-Frame-Options SAMEORIGIN;

<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 은 각 브라우저 마다 지원 현황이 다르다.
2014/09/18 11:21 2014/09/18 11:21
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다