mozilla
Your Search Results

    The X-Frame-Options response header

    Note: The frame-ancestors directive from the CSP Level 2 specification officially replaces this non-standard header and has been supported since Gecko 4.0,  but is not supported across all browsers. Though X-Frame-Options is not an official standard it is widely supported and can be used in conjunction with CSP.

    The X-Frame-Options HTTP response header can be used to indicate whether or not a browser should be allowed to render a page in a <frame>, <iframe> or <object> . Sites can use this to avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

    Using X-Frame-Options

    There are three possible values for X-Frame-Options:

    DENY
    The page cannot be displayed in a frame, regardless of the site attempting to do so.
    SAMEORIGIN
    The page can only be displayed in a frame on the same origin as the page itself.
    ALLOW-FROM uri
    The page can only be displayed in a frame on the specified origin.

    In other words, if you specify DENY, not only will attempts to load the page in a frame fail when loaded from other sites, attempts to do so will fail when loaded from the same site. On the other hand, if you specify SAMEORIGIN, you can still use the page in a frame as long as the site including it in a frame is the same as the one serving the page.

    Configuring Apache

    To configure Apache to send the X-Frame-Options header for all pages, add this to your site's configuration:

    Header always append X-Frame-Options SAMEORIGIN
    

    Configuring nginx

    To configure nginx to send the X-Frame-Options header, add this either to your http, server or location configuration:

    add_header X-Frame-Options SAMEORIGIN;
    

    Configuring IIS

    To configure IIS to send the X-Frame-Options header, add this your site's Web.config file:

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

    Configuring HAProxy

    To configure HAProxy to send the X-Frame-Options header, add this to your frontend, listen, or backend configuration:

    rspadd X-Frame-Options:\ SAMEORIGIN

    Note: Setting the meta tag is useless, for instance, <meta http-equiv="X-Frame-Options" content="deny"> has no effect. Do not use it. Only by setting through the HTTP header like the examples above, X-Frame-Options will work.

     

    Results

    When an attempt is made to load content into a frame, and permission is denied by the X-Frame-Options header, Firefox currently renders about:blank into the frame. At some point, an error message of some kind will be displayed in the frame instead.

    Browser compatibility

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support 4.1.249.1042 3.6.9 (1.9.2.9) 8.0 10.5 4.0
    ALLOW-FROM support Not supported 18.0 (18.0) bug 690168 8.0? ? Not supported WebKit bug 94836
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support ? ? ? ? ? ?

    See also

    Document Tags and Contributors

    Last updated by: foxbrush,