--- title: X-Frame-Options slug: Web/HTTP/Headers/X-Frame-Options translation_of: Web/HTTP/Headers/X-Frame-Options ---
The X-Frame-Options
HTTP 응답 헤더는 해당 페이지를 {{HTMLElement("frame")}} 또는{{HTMLElement("iframe")}}, {{HTMLElement("object")}} 에서 렌더링할 수 있는지 여부를 나타내는데 사용됩니다. 사이트 내 콘텐츠들이 다른 사이트에 포함되지 않도록 하여 {{interwiki("wikipedia", "clickjacking")}} 공격을 막기 위해 이 헤더를 사용합니다.
이 설정은 사용자가 X-Frame-Options
를 지원하는 브라우저를 통해 페이지에 접근할 경우에만 보안됩니다.
Header type | {{Glossary("Response header")}} |
---|---|
{{Glossary("Forbidden header name")}} | no |
X-Frame-Options
과 관련해서는 다음의 3가지 설정이 가능합니다.
X-Frame-Options: deny X-Frame-Options: sameorigin X-Frame-Options: allow-from https://example.com/
deny
는 같은 사이트 내에서 frame을 통한 접근도 막습니다.
sameorigin
를 명시할 경우에는 frame에 포함된 페이지가 페이지를 제공하는 사이트와 동일한할 경우 계속 사용할 수 있습니다.
deny
sameorigin
allow-from uri
sameorigin
과 동일한 문제를 겪고 있습니다. 즉 동일한 사이트에 있는지에 대해서 frame의 조상(ancestor)을 확인하지 않습니다.Note: 메타 테그 설정은 무용지물이다! 이를테면, <meta http-equiv="X-Frame-Options" content="deny">
태그는 아무런 영향을 미치지 않는다. 따라서 사용하지 말자! 오직 아래의 예제처럼 HTTP 헤더 설정을 통해서만 X-Frame-Options
이 동작한다.
아파치에서 모든 페이지에 X-Frame-Options
헤더를 전송하려면, 사이트 설정에 다음의 설정을 추가합니다.
Header always set X-Frame-Options "sameorigin"
아파치에서 X-Frame-Options
거부(deny)하려면, 사이트 설정에 다음의 설정을 추가합니다.
Header set X-Frame-Options "deny"
아파치에서 특정 호스트(host)에서 X-Frame-Options
를 허용하려면(allow-from)
, 사이트 설정에 다음의 설정을 추가합니다.
Header set X-Frame-Options "allow-from https://example.com/"
nginx에서 X-Frame-Options
헤더를 전송하려면 http, server, location 설정에 아래 설정을 추가합니다.
add_header X-Frame-Options sameorigin;
ISS에서 X-Frame-Options
헤더를 전송하려면, 사이트의 Web.config
파일에 다음을 추가합니다.
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="sameorigin" /> </customHeaders> </httpProtocol> ... </system.webServer>
HAProxy에서 X-Frame-Options
헤더를 전송하려면, front-end, listen, 혹은 backend 설정에 다음을 추가합니다.
rspadd X-Frame-Options:\ sameorigin
Specification | Title |
---|---|
{{RFC("7034")}} | HTTP Header Field X-Frame-Options |
{{Compat("http.headers.X-Frame-Options")}}