One document matched: draft-ietf-websec-x-frame-options-11.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY RFC2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY RFC3864 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3864.xml">
<!ENTITY RFC6454 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6454.xml">
<!ENTITY RFC6648 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6648.xml">
<!ENTITY RFC3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-ietf-websec-x-frame-options-11" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** -->
<front>
<!-- The abbreviated title is used in the page header - it is only necessary if the
full title is longer than 39 characters -->
<title abbrev="X-Frame-Options">HTTP Header Field X-Frame-Options</title>
<!-- add 'role="editor"' below for the editors if appropriate -->
<!-- Another author who claims to be an editor -->
<author fullname="David Ross" initials="D."
surname="Ross">
<organization>Microsoft</organization>
<address>
<postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city></city>
<region></region>
<code></code>
<country>U.S.</country>
</postal>
<phone></phone>
<email></email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<author fullname="Tobias Gondrom" initials="T."
surname="Gondrom">
<organization>Thames Stanley</organization>
<address>
<postal>
<street>Kruegerstr. 5A</street>
<!-- Reorder these if your country does things differently -->
<city>Unterschleissheim</city>
<region></region>
<code></code>
<country>Germany</country>
</postal>
<phone>+44 7521003005</phone>
<email>tobias.gondrom@gondrom.org</email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<date month="August" year="2013" />
<area>General</area>
<workgroup>WEBSEC</workgroup>
<keyword>frame-options</keyword>
<keyword>HTTP header</keyword>
<keyword>websec</keyword>
<abstract>
<t>To improve the protection of web applications against Clickjacking,
this definition describes the X-Frame-Options HTTP response header field
that declares a policy communicated from the server to the client browser
on whether the browser may display the transmitted content in frames
that are part of other web pages. This informational document serves to
document the existing use and specification of this X-Frame-Options HTTP
response header field.
</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>In 2009 and 2010 many browser vendors (<xref target="Microsoft-X-Frame-Options"></xref>,
<xref target="CLICK-DEFENSE-BLOG"></xref>, <xref target="Mozilla-X-Frame-Options"></xref>)
introduced the use of a non-standard HTTP <xref target="RFC2616"></xref> header field
"X-Frame-Options" to protect against <xref target="Clickjacking">Clickjacking</xref>.
HTML-based web applications can embed or "frame" other web pages. Clickjacking is a type of attack
that occurs when an attacker uses multiple transparent or opaque layers in the user interface to
trick a user into clicking on a button or link on another page from server B when they were
intending to click on the same place of the overlaying page from server A.
Thus, the attacker is "hijacking" clicks meant for their page A and routing them to another page B.
The attacker is tricking the user (who sees the overlaying user interface content from page A) into clicking
specific locations on the underlying page from server B, triggering some actions on server B and potentially
using an existing session context in that step. This is an attack on both the user and on server B.
And server A may or may not be the attacker.
</t>
<t>This specification provides informational documentation about the current use and definition of
the X-Frame-Options HTTP header field. As described in Section 2.3.2.2 not all browsers implement X-Frame-Options
exactly in the sames way, which can lead to unintended results. And given that the "X-" construction is deprecated <xref target="RFC6648"></xref>,
the X-Frame-Options header field will in the future be replaced by the Frame-Options directive in the
Content Security Policy Version 1.1 <xref target="CSP-1-1"></xref>.
</t>
<t>Existing anti-ClickJacking measures, e.g. Frame-breaking Javascript,
have weaknesses so that their protection can be circumvented as a study
<xref target="FRAME-BUSTING"></xref> demonstrated.
</t>
<t>Short of configuring the browser to disable frames and script entirely,
which massively impairs browser utility, browser users are vulnerable to this type of attack.
</t>
<t>"X-Frame-Options" allows a web page from host B to declare that its content
(for example a button, links, text, etc.) must not be displayed in a frame
(<frame> or <iframe>) of another page (e.g. from host A).
This is done by a policy declared in the HTTP header and enforced by browser implementations as documented here.
</t>
<section title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC 2119</xref>.</t>
</section>
</section>
<section title="X-Frame-Options Header">
<t>The X-Frame-Options HTTP response header field indicates a policy on
whether the browser should render the transmitted resource within a
<frame> or <iframe>. Servers can declare this policy in the header of
their HTTP responses to prevent clickjacking attacks, and by this ensuring
that their content is not embedded into other pages or frames.
</t>
<section title="Syntax">
<t>The header field name is:
<vspace /><vspace />
X-Frame-Options
</t>
<t>There are three different values for the header field. These values
are mutually exclusive, that is exactly one of the three values MUST be
set.
<list style="hanging" hangIndent="6">
<t hangText="DENY"><vspace />
A browser receiving content with this header MUST NOT display this content in any frame.
</t>
<t hangText="SAMEORIGIN"><vspace />
A browser receiving content with this header field MUST NOT display this content in any frame from a
page of different origin than the content itself.<vspace />
If a browser or plugin can not reliably determine whether the origin of the content and the frame have
the same origin, this MUST be treated as "DENY".<vspace />
Please note that current implementations vary on the interpretation of this criteria: In some it only
allows a page to be framed if the origin of the top-level browsing-context is identical to the origin
of the content using the X-FRAME-OPTIONS directive; in others it may consider the origin of the framing page instead.
See also section 2.3.2.2 for more details on the nesting of frames and variations in the handling of this header field by different browsers.
And refer to section 5 paragraph 2 for the resulting potential security problems.
</t>
<t hangText="ALLOW-FROM"> (followed by a serialized-origin <xref target="RFC6454"></xref>)<vspace />
A browser receiving content with this header MUST NOT display this content in a
frame from any page with a top-level browsing context of different origin than the specified origin.
While this can expose the page to risks by the trusted origin, in some cases it may be
necessary to allow the framing by content from other domains.
</t>
</list>
</t>
<t>The meaning of the term "serialized-origin" is given in [RFC6454].<vspace />
If the ALLOW-FROM value is used, it MUST be followed by a valid origin <xref target="RFC6454"></xref>
(as a subset of URI <xref target="RFC3986"></xref>)<vspace />
Any data beyond the domain address (i.e. any data after the "/" separator)
is to be ignored. And the algorithm to compare origins from <xref target="RFC6454"></xref>
SHOULD be used to verify that a referring page is of the same origin as the
content (in the case of SAMEORIGIN) or that the referring page's origin
is identical with the ALLOW-FROM serialized-origin (in the case of ALLOW-FROM).
Though in conflict with <xref target="RFC6454"></xref>, current implementations
do not consider the port as a defining component of the origin. I.e. existing
implementations differ with <xref target="RFC6454"></xref> in that origins with the
same protocol but different port values are considered equivalent.
</t>
<t>Wildcards or lists to declare multiple domains in one ALLOW-FROM statement are not permitted (see Section 2.3.2.3).
</t>
</section>
<section title=" Augmented Backus-Naur Form (ABNF)">
<t>The <xref target="RFC5234">RFC 5234</xref> ABNF of the X-Frame-Options header field value is the following.<vspace /><vspace />
<figure>
<artwork align="left">
X-Frame-Options = "DENY"
/ "SAMEORIGIN"
/ ( "ALLOW-FROM" RWS SERIALIZED-ORIGIN )
RWS = 1*( SP / HTAB )
; required whitespace
</artwork>
</figure>
With serialized-origin as defined in <xref target="RFC6454"></xref> and the definition of RWS (required whitespace)
is the same as in <xref target="HTTPbis-P1"></xref>.
</t>
<t>
RWS is used when at least one linear whitespace octet is required to separate field tokens.
RWS SHOULD be generated as a single space (SP). Multiple RWS octets that occur within field-content
SHOULD either be replaced with a single SP or transformed to all SP octets before
interpreting the field value or forwarding the message downstream.
</t>
<t>And SP (space) and HTAB (horizontal tab) are as defined in <xref target="RFC5234">RFC 5234</xref>, Appendix B.1.</t>
<t>
The values are specified as ABNF strings, and therefore are case-insensitive.
</t>
<section title="Examples of X-Frame-Options">
<figure>
<artwork align="left">
X-FRAME-OPTIONS: DENY
X-FRAME-OPTIONS: SAMEORIGIN
X-FRAME-OPTIONS: ALLOW-FROM https://example.com/
</artwork>
</figure>
</section>
</section>
<section anchor="design" title="Design Issues">
<section anchor="vectors" title="Enable HTML content from other domains">
<t>There are a number of main direct vectors that enable HTML content from other domains
and browser implementations of X-Frame-Options cover all of them:
<list style="symbols">
<t>IFRAME tag</t>
<t>Frame tag</t>
<t>The Object tag (requires a redirect)</t>
<t>Applet tag</t>
<t>Embed tag</t>
</list>
</t>
<t>Besides these, other ways to host HTML content can be possible. For example
some plugins may host HTML views directly. If these plugins appear
essentially as frames (as opposed to top-level windows), the plugins
must conform to the X-FRAME-OPTIONS policy as specified in this document as well.
</t>
</section>
<section anchor="processing" title="Browser Behaviour and Processing">
<t>To allow secure implementations, browsers must behave in a consistent and reliable way.
</t>
<t>If an X-Frame-Options HTTP header field prohibits framing, the user-agent of the browser MAY immediately abort downloading or parsing of the document.
</t>
<section title="Violation of X-Frame-Options">
<t>
When a browser discovers that loaded content with the X-FRAME-OPTIONS header field would be
displayed in a frame against the specified orders of the header, the browser SHOULD redirect
as soon as possible to a "No-Frame" page. For example this can be a noframe.html page that
also states the full URL and hostname of the protected page.
</t>
<t>The NoFrame page could provide the user with an option to open the target URL in a new window.
</t>
<t>Implementations of this vary, some browsers will show a message that allows the user
to safely open the target page in a new window. Other implementations will simply render an empty frame.
</t>
</section>
<section title="Variation in current browser behaviour">
<t>There are currently variations in the implementation of the X-FRAME-OPTIONS header.
For example not all browsers support the "ALLOW-FROM" option.
"ALLOW-FROM" was initially an Internet Explorer extension and at the time of
writing has not been uniformly implemented by other user agents.
</t>
<t>Furthermore the criteria for the SAMEORIGIN (and ALLOW-FROM) directive may not be evaluated unanimously either:
The known implementations in Appendix A evaluate the SAMEORIGIN directive based on the
origin of the framed page and the top-level browsing-context, while other implementations
might evaluate based on the framed page and the framing page, or the whole chain of nested frames inbetween.
</t>
<t>
To illustrate the difference between the comparison with "framing page" and the
"top-level browsing-context" consider the following scenario:
Web pages may embed frames with other pages which in turn embed frames with other pages as well and so on.
In theory this can result in an infinite nesting of framed pages.
For example web page A may contain in a frame web page B, and web page B contains in a frame web page C.
<figure><artwork><![CDATA[
Web page A
<html>
....
<frame src="https://URI_of_web_page_B" />
</html>
Web Page B
<html>
....
<frame src="https://URI_of_web_page_C" />
</html>
And so forth...
]]></artwork></figure>
</t>
<t>In this example, for the nested frames with the inner framed web page C,
the most outer web page A would be the "top-level browsing-context" and web page B would be the "framing page"</t>
<t>These potential variations in the evaluation of the header by different
implementations impair the useage and reliability of this http
header and have security implications as described in section 5.
A revised version of x-frame-options in the form of a frame-options directive
in the CSP 1.1<xref target="CSP-1-1"></xref> will unify the behaviour and it is expected
that newer implementations will use it rather than the mechanisms documented here.
</t>
</section>
<section anchor="ex-allow-from" title="Usage design pattern and example scenario for the ALLOW-FROM parameter">
<t>As the "ALLOW-FROM" field only supports one serialized-origin, in cases when the server wishes
to allow more than one resource to frame its content, the following design pattern can fulfil that need:
</t>
<t><list style="numbers">
<t>A page that wants to render the requested content in a frame supplies its own origin information
to the server providing the to-be-framed content via a querystring parameter.
</t>
<t>The Server verifies the hostname meets its criteria so that the page can be allowed to be framed
by the target resource. This may for example happen via a look-up of a white-list of trusted domain names
that are allowed to frame the page. For example, for a Facebook "Like" button, the server can check to
see that the supplied hostname matches the hostname(s) expected for that "Like" button.
</t>
<t>The server returns the hostname in X-FRAME-OPTIONS: ALLOW-FROM if the proper criteria was met in step #2.
</t>
<t>The browser enforces the X-FRAME-OPTIONS: ALLOW-FROM header.
</t>
</list>
</t>
</section>
<section anchor="no_caching" title="No caching of the X-Frame-Options header">
<t>
It is not recommended to cache the X-Frame-Options header for a resource.
Caching the X-Frame-Options response could result in problems because:
<list style="numbers">
<t>
The browser has to check for every http-request of the resource whether the
X-Frame-Options header has been set and then act accordingly, as a resource itself
might be created dynamically and the header could change with it, too.
</t>
<t>
And also, as outlined in section 2.3.2.3., servers may generate
X-Frame-Options header responses depending on the request.
Example case: Considering that we have only one serialized-origin in the
ALLOW-FROM directive, imagine a user has multiple pages open in his
browser tabs with one of web page 1 from domain A and the second of web page 2
from domain B, both frame the same page from domain C with the ALLOW-FROM
directive. In that case the page needs to reply to both requests with
different X-Frame-Options headers, the first pointing to origin A, the second to origin B.
</t>
</list>
However, we found that none of the major browsers listed in Appendix A cache the responses.
</t>
</section>
</section>
</section>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>This document was derived from input from specifications published by various browser
vendors such as Microsoft (Eric Lawrence, David Ross), Mozilla, Google, Opera and Apple.</t>
</section>
<!-- Possibly a 'Contributors' section ... -->
<section anchor="IANA" title="IANA Considerations">
<t>This memo is a request to IANA to include the specified HTTP header in the registry as outlined in <xref target="RFC3864">Registration Procedures for Message Header Fields</xref></t>
<section anchor="reg-template" title="Registration Template">
<figure align="left" anchor="template">
<artwork align="left">
PERMANENT MESSAGE HEADER FIELD REGISTRATION TEMPLATE:
Header field name: X-Frame-Options
Applicable protocol: http [RFC2616]
Status: informational
Author/Change controller: IETF
Specification document(s): draft-ietf-websec-x-frame-options
Related information:
</artwork>
</figure>
</section>
</section>
<section anchor="Security" title="Security Considerations">
<t>The introduction of the X-FRAME-OPTIONS http header field does improve the
protection against Clickjacking. However, it is not self-sufficient on its own
to protect against all kinds of these attack vectors. It must be used in
conjunction with other security measures like secure coding (e.g. input validation, output encoding, ...)
and the Content Security Policy <xref target="CSP"></xref>.
</t>
<t>It is important to note that current implementations do not check the origins
of the entire ancestor tree of frames of the framing resources, and this may expose
the resource to attack in multiple-nested scenarios.
</t>
<t>
The browser implementations evaluate based on the origin of the framed page and the top-level browsing-context
(i.e. most outer frame): <vspace />
If a resource from origin A embeds untrusted content from origin B,
that untrusted content can embed another resource from origin A with an
X-Frame-Options: SAMEORIGIN policy and that check would pass when the user agent
only verifies the top-level browsing context.
Therefore web developers should be aware that embedding content from other sites can
leave their web pages vulnerable to clickjacking even if the X-Frame-Options header is used.
</t>
<t>Furthermore, X-Frame-Options must be sent as an HTTP header field and is
explicitly ignored by user agents when declared with a meta http-equiv tag.
</t>
<section title="Privacy Considerations">
<t>
There are two kinds of potential data leakage to consider:
</t>
<t><list style="numbers">
<t>
Using X-FRAME-OPTIONS with the parameter ALLOW-FROM allows a page to guess or infer information about who is framing it.
A web server may answer requests with the X-FRAME-OPTIONS ALLOW-FROM header and by thus
determine which other page is framing it.
This is inherent by design, but may lead to data leakage or data protection concerns.
</t>
<t>
The web server using the ALLOW-FROM directive may disclose to other parties who request
the page in the header by which page it is allowed to be framed.
If a web server wishes to reduce this leakage, it is recommended to generate the
ALLOW-FRAM header for each request based on the design pattern as described in section 2.3.2.3.
</t>
</list></t>
</section>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<!-- References split into informative and normative -->
<!-- There are 2 ways to insert reference entries from the citation libraries:
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
Both are cited textually in the same manner: by using xref elements.
If you use the PI option, xml2rfc will, by default, try to find included files in the same
directory as the including file. You can also define the XML_LIBRARY environment variable
with a value containing a set of directories to search. These can be either in the local
filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="Normative References">
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
&RFC2119;
&RFC5234;
&RFC3986;
&RFC6454;
</references>
<references title="Informative References">
<!-- Here we use entities that we defined at the beginning. -->
&RFC2616;
&RFC3864;
&RFC6648;
<reference anchor='CSP'
target='http://www.w3.org/TR/2012/CR-CSP-20121115/'>
<front>
<title>Content Security Policy 1.0</title>
<author fullname='Brandon Sterne' surname='Sterne' initials='B. '/>
<author fullname='Adam Barth' surname='Barth' initials='A. '/>
<date year='2012' month='November' day='15'/>
</front>
<seriesInfo name='W3C Candidate Recommendation' value='CR-CSP-20121115'/>
<annotation>
Latest version available at
<eref target='http://www.w3.org/TR/CSP/'/>.
</annotation>
</reference>
<reference anchor='CSP-1-1'
target='http://www.w3.org/TR/2013/WD-CSP11-20130604/'>
<front>
<title>Content Security Policy 1.1</title>
<author fullname='Adam Barth' surname='Barth' initials='A. '/>
<author fullname='Mike West' surname='West' initials='M. '/>
<date year='2013' month='June' day='04'/>
</front>
<seriesInfo name='W3C Working Draft' value='WD-CSP11-20130604'/>
<annotation>
Latest version available at
<eref target='http://www.w3.org/TR/CSP11/'/>.
</annotation>
</reference>
<reference anchor="Clickjacking"
target="http://www.owasp.org/index.php/Clickjacking">
<front>
<title>Clickjacking</title>
<author>
<organization>OWASP (Open Web Application Security Project)</organization>
</author>
<date year="2010" />
</front>
</reference>
<reference anchor="CLICK-DEFENSE-BLOG"
target="http://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx">
<front>
<title>Clickjacking Defense</title>
<author>
<organization>Microsoft</organization>
</author>
<date year="2009" />
</front>
</reference>
<reference anchor="Microsoft-X-Frame-Options"
target="http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx">
<front>
<title>Combating ClickJacking With X-Frame-Options</title>
<author>
<organization>Microsoft</organization>
</author>
<date year="2010" />
</front>
</reference>
<reference anchor="Mozilla-X-Frame-Options"
target="https://developer.mozilla.org/en-US/docs/The_X-FRAME-OPTIONS_response_header">
<front>
<title>The X-Frame-Options response header</title>
<author>
<organization>Mozilla</organization>
</author>
<date year="2010" />
</front>
</reference>
<reference anchor="CSRF"
target="https://www.owasp.org/index.php/Top_10_2013-A8-Cross-Site_Request_Forgery_%28CSRF%29">
<front>
<title>OWASP Top-10: Cross-Site Request Forgery (CSRF)</title>
<author>
<organization>OWASP (Open Web Application Security Project)</organization>
</author>
<date year="2010" />
</front>
</reference>
<reference anchor="FRAME-BUSTING"
target="http://seclab.stanford.edu/websec/framebusting/">
<front>
<title>Busting frame busting: a study of clickjacking vulnerabilities at popular sites</title>
<author>
<organization>Stanford Web Security Research</organization>
</author>
<date year="2010" />
</front>
</reference>
<reference anchor="HTTPbis-P1"
target="http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-23">
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
<author>
<organization>IETF</organization>
</author>
<date year="2013" />
</front>
</reference>
</references>
<section title="Browsers that support X-Frame-Options">
<t><list style="symbols">
<t>Internet Explorer 8+
</t>
<t>Firefox 3.6.9+
</t>
<t>Opera 10.5+
</t>
<t>Safari 4+
</t>
<t>Chrome 4.1+
</t>
</list>
</t>
</section>
<section anchor="app-Clickjacking-description" title="Description of a Clickjacking attack">
<t>More detailed explanation of Clickjacking scenarios</t>
<section anchor="scenario-1" title="Shop">
<t>An Internet Marketplace/Shop offering a feature with a link/button to "Buy this" Gadget<vspace />
The marketplace wants their affiliates (who could be malicious attackers) to be able
to stick the "Buy such-and-such from XYZ" IFRAMES into their pages.
There is a possible Clickjacking threat here, which is why the marketplace/onlineshop
needs to then immediately navigate the main browsing context (or a new window)
to a confirmation page which is protected by anti-Clickjacking protections.
</t>
</section>
<section anchor="scenario-2" title="Online Shop Confirm Purchase Page">
<t>The "Confirm Purchase" page of an online shop must be shown to the end user
without the risk of an overlay or misuse by an attacker. For that reason,
the confirmation page uses a combination of anti-CSRF (Cross Site Request Forgery, <xref target="CSRF"></xref>) tokens and the X-FRAME-OPTIONS HTTP header field,
mitigating ClickJacking attacks.
</t>
</section>
<section anchor="scenario-3" title="Flash Configuration">
<t>Macromedia Flash configuration settings are set by a Flash object
which can run only from a specific configuration page on Macromedia's
site. The object runs inside the page and thus can be subject to a
ClickJacking attack. In order to prevent ClickJacking attacks
against the security settings, the configuration page uses the
X-FRAME-OPTIONS directive.
</t>
</section>
</section>
<!-- Change Log
v00 2012-07-03 DR+TG Initial version based on draft-gondrom-x-frame-options-00
v01 2012-10-22 TG Clean up of references and text in preparation of WGLC
v02 2013-02-25 TG Included all comments from WGLC
-->
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 15:31:36 |