X-Frame-Options
The X-Frame-Options HTTP ìëµ í¤ëë í´ë¹ íì´ì§ë¥¼ <frame> ëë<iframe>, <object> ìì ë ëë§í ì ìëì§ ì¬ë¶ë¥¼ ëíë´ëë° ì¬ì©ë©ëë¤. ì¬ì´í¸ ë´ ì½í
ì¸ ë¤ì´ ë¤ë¥¸ ì¬ì´í¸ì í¬í¨ëì§ ìëë¡ íì¬ clickjacking 공격ì ë§ê¸° ìí´ ì´ í¤ë를 ì¬ì©í©ëë¤.
ì´ ì¤ì ì ì¬ì©ìê° X-Frame-Options를 ì§ìíë ë¸ë¼ì°ì 를 íµí´ íì´ì§ì ì ê·¼í ê²½ì°ìë§ ë³´ìë©ëë¤.
ì°¸ê³ :
Content-Security-Policy HTTP í¤ëìë ë¸ë¼ì°ì 를 ì§ìí기 ìí´ ì´ í¤ë를 ì¬ì©íì§ ìëë¡ íë frame-ancestors ì§ìë¬¸ì´ ììµëë¤.
| Header type | Response header |
|---|---|
| Forbidden request header | no |
Syntax
X-Frame-Options ê³¼ ê´ë ¨í´ìë ë¤ìì 3ê°ì§ ì¤ì ì´ ê°ë¥í©ëë¤.
X-Frame-Options: deny X-Frame-Options: sameorigin X-Frame-Options: allow-from https://example.com/
Directives
denyë ê°ì ì¬ì´í¸ ë´ìì frameì íµí ì ê·¼ë ë§ìµëë¤.
sameorigin를 ëª
ìí ê²½ì°ìë frameì í¬í¨ë íì´ì§ê° íì´ì§ë¥¼ ì ê³µíë ì¬ì´í¸ì ëì¼íí ê²½ì° ê³ì ì¬ì©í ì ììµëë¤.
deny-
ì´ë í ì¬ì´í¸ììë frame ììì ë³´ì¬ì§ ì ììµëë¤.
sameorigin-
ëì¼í ì¬ì´í¸ì frameììë§ ë³´ì¬ì§ëë¤. í´ë¹ ì¤í ììì ë¸ë¼ì°ì 벤ëê° ìµìì(top level), í¹ì ë¶ëª¨(parent), 모ë ì²´ì¸(whole chain)ìì ì ì©í ì§ë¥¼ ê²°ì íëë¡ ë§¡ê²¨ì§ëë¤. íì§ë§ 모ë ì¡°ì(ancestor)ì´ ëì¼í ì¬ì´í¸ìì ì ê³µëì§ ìì¼ë©´ ì´ ìµì ì ê·¸ë¤ì§ ì ì©íì§ ìë¤ê³ ë ¼ìëê³ ììµëë¤. (ì°¸ê³ Firefox bug 725490). ìì¸ ì§ìì¬íì ëí ì°¸ê³ Browser compatibility.
allow-from uri-
ì§ì ë í¹ì uriì frame ììë§ ë³´ì¬ì§ëë¤. Firefoxììë
sameoriginê³¼ ëì¼í 문ì 를 ê²ªê³ ììµëë¤. ì¦ ëì¼í ì¬ì´í¸ì ìëì§ì ëí´ì frameì ì¡°ì(ancestor)ì íì¸íì§ ììµëë¤.
ìì
ì°¸ê³ :
ë©í í
ê·¸ ì¤ì ì 무ì©ì§ë¬¼ì´ë¤! ì´ë¥¼í
ë©´, <meta http-equiv="X-Frame-Options" content="deny"> íê·¸ë ìë¬´ë° ìí¥ì 미ì¹ì§ ìëë¤. ë°ë¼ì ì¬ì©íì§ ë§ì! ì¤ì§ ìëì ìì ì²ë¼ HTTP í¤ë ì¤ì ì íµí´ìë§ X-Frame-Optionsì´ ëìíë¤.
Apache ì¤ì
ìíì¹ìì 모ë íì´ì§ì 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 ì¤ì
nginxìì X-Frame-Options í¤ë를 ì ì¡íë ¤ë©´ http, server, location ì¤ì ì ìë ì¤ì ì ì¶ê°í©ëë¤.
add_header X-Frame-Options sameorigin;
IIS ì¤ì
ISSìì X-Frame-Options í¤ë를 ì ì¡íë ¤ë©´, ì¬ì´í¸ì Web.config íì¼ì ë¤ìì ì¶ê°í©ëë¤.
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="sameorigin" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
HAProxy ì¤ì
HAProxyìì X-Frame-Options í¤ë를 ì ì¡íë ¤ë©´, front-end, listen, í¹ì backend ì¤ì ì ë¤ìì ì¶ê°í©ëë¤.
rspadd X-Frame-Options:\ sameorigin
ëª ì¸ì
| Specification |
|---|
| HTML > # the-x-frame-options-header > |