Note: For more comprehensive options than offered by this header, see the frame-ancestors
directive in a Content-Security-Policy
header.
The HTTP X-Frame-Options
response header can be used to indicate whether a browser should be allowed to render a page in a <frame>
, <iframe>
, <embed>
or <object>
. Sites can use this to avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.
The added security is provided only if the user accessing the document is using a browser that supports X-Frame-Options
.
There are two possible directives for X-Frame-Options
:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Directives
If you specify DENY
, not only will the browser attempt 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.
DENY
The page cannot be displayed in a frame, regardless of the site attempting to do so.
SAMEORIGIN
The page can only be displayed if all ancestor frames are same origin to the page itself.
ALLOW-FROM origin
Deprecated
This is an obsolete directive. Modern browsers that encounter response headers with this directive will ignore the header completely. The Content-Security-Policy
HTTP header has a frame-ancestors
directive which you should use instead.
Warning: Setting X-Frame-Options
inside the <meta>
element (e.g., <meta http-equiv="X-Frame-Options" content="deny">
) has no effect. X-Frame-Options
is only enforced via HTTP headers, as shown in the examples below.
To configure Apache to send the X-Frame-Options
header for all pages, add this to your site's configuration:
Header always set X-Frame-Options "SAMEORIGIN"
To configure Apache to set X-Frame-Options
to DENY
, add this to your site's configuration:
Header set X-Frame-Options "DENY"
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 always;
You can set the X-Frame-Options
header to DENY
using:
add_header X-Frame-Options DENY always;
Configuring IIS
To configure IIS to send the X-Frame-Options
header, add this to your site's Web.config
file:
<system.webServer>
â¦
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
â¦
</system.webServer>
For more information, see the Microsoft support article on setting this configuration using the IIS Manager user interface.
Configuring HAProxyTo configure HAProxy to send the X-Frame-Options
header, add this to your front-end, listen, or backend configuration:
rspadd X-Frame-Options:\ SAMEORIGIN
Alternatively, in newer versions:
http-response set-header X-Frame-Options SAMEORIGINConfiguring Express
To set X-Frame-Options
to SAMEORIGIN
using Helmet add the following to your server configuration:
const helmet = require("helmet");
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3