<li><ahref="#apply-algorithm-to-response"><spanclass="secno">3.3.1</span> <spanclass="content">Apply <var>algorithm</var> to <var>response</var></span></a>
<li><ahref="#is-response-eligible"><spanclass="secno">3.3.2</span> <spanclass="content">Is <var>response</var> eligible for integrity validation?</span></a>
<li><ahref="#get-the-strongest-metadata"><spanclass="secno">3.3.4</span> <spanclass="content">Get the strongest metadata from <var>set</var></span></a>
<li><ahref="#does-response-match-metadatalist"><spanclass="secno">3.3.5</span> <spanclass="content">Does <var>response</var> match <var>metadataList</var>?</span></a>
- </ul>
+ </ol>
<li><ahref="#verification-of-html-document-subresources"><spanclass="secno">3.4</span> <spanclass="content">Verification of HTML document subresources</span></a>
<li><ahref="#link-element-for-stylesheets"><spanclass="secno">3.8.1</span> <spanclass="content">The <code>link</code> element for stylesheets</span></a>
for globally-distributed users. It is important, however, to ensure that
the CDN’s servers deliver <em>only</em> the code the author expects them to
deliver. To mitigate the risk that a CDN compromise (or unexpectedly malicious
- behavior) would change that site in unfortunate ways, the following <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> is added to the <code>link</code> element included on the page:</p>
+ behavior) would change that site in unfortunate ways, the following <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-1">integrity metadata</a> is added to the <code>link</code> element included on the page:</p>
<p>An author wants to include JavaScript provided by a third-party
analytics service. To ensure that only the code that has been carefully
- reviewed is executed, the author generates <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> for
+ reviewed is executed, the author generates <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-2">integrity metadata</a> for
the script, and adds it to the <code>script</code> element:</p>
<p>A user agent wishes to ensure that JavaScript code running in high-privilege HTML
- contexts (for example, a browser’s New Tab page) aren’t manipulated before display. <adata-link-type="dfn"href="#integrity-metadata">Integrity metadata</a> mitigates the risk that altered JavaScript will run
+ contexts (for example, a browser’s New Tab page) aren’t manipulated before display. <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-3">Integrity metadata</a> mitigates the risk that altered JavaScript will run
in these pages' high-privilege contexts.</p>
</ul>
<h2class="heading settled"data-level="2"id="terms"><spanclass="secno">2. </span><spanclass="content">Key Concepts and Terminology</span><aclass="self-link"href="#terms"></a></h2>
<p>This section defines several terms used throughout the document.</p>
- <p>The term <dfndata-dfn-type="dfn"data-noexport=""id="digest">digest<aclass="self-link"href="#digest"></a></dfn> refers to the base64 encoded result of
+ <p>The term <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="digest"data-noexport=""id="digest">digest<spanclass="dfn-panel"data-deco=""><b><ahref="#digest">#digest</a></b><b>Referenced in:</b><span><ahref="#ref-for-digest-1">3.1. Integrity metadata</a></span></span></dfn> refers to the base64 encoded result of
executing a cryptographic hash function on an arbitrary block of data.</p>
- <p>The terms <dfndata-dfn-type="dfn"data-noexport=""id="origin">origin<aclass="self-link"href="#origin"></a></dfn>, <dfndata-dfn-type="dfn"data-noexport=""id="cross-origin">cross-origin<aclass="self-link"href="#cross-origin"></a></dfn>, and <dfndata-dfn-type="dfn"data-noexport=""id="same-origin">same-origin<aclass="self-link"href="#same-origin"></a></dfn> are defined by the Origin specification. <adata-link-type="biblio"href="#biblio-origin">[ORIGIN]</a></p>
- <p>The <dfndata-dfn-type="dfn"data-noexport=""id="representation-data">representation data<aclass="self-link"href="#representation-data"></a></dfn> and <dfndata-dfn-type="dfn"data-noexport=""id="content-encoding">content encoding<aclass="self-link"href="#content-encoding"></a></dfn> of a resource
+ <p>The terms <dfndata-dfn-type="dfn"data-noexport=""id="origin">origin<aclass="self-link"href="#origin"></a></dfn>, <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="cross-origin"data-noexport=""id="cross-origin">cross-origin<spanclass="dfn-panel"data-deco=""><b><ahref="#cross-origin">#cross-origin</a></b><b>Referenced in:</b><span><ahref="#ref-for-cross-origin-1">3.3.2. Is response eligible for integrity validation?</a></span></span></dfn>, and <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="same-origin"data-noexport=""id="same-origin">same-origin<spanclass="dfn-panel"data-deco=""><b><ahref="#same-origin">#same-origin</a></b><b>Referenced in:</b><span><ahref="#ref-for-same-origin-1">3.3.2. Is response eligible for integrity validation?</a> <ahref="#ref-for-same-origin-2">(2)</a></span></span></dfn> are defined by the Origin specification. <adata-link-type="biblio"href="#biblio-origin">[ORIGIN]</a></p>
+ <p>The <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="representation data"data-noexport=""id="representation-data">representation data<spanclass="dfn-panel"data-deco=""><b><ahref="#representation-data">#representation-data</a></b><b>Referenced in:</b><span><ahref="#ref-for-representation-data-1">3.3.1. Apply algorithm to response</a> <ahref="#ref-for-representation-data-2">(2)</a></span></span></dfn> and <dfndata-dfn-type="dfn"data-noexport=""id="content-encoding">content encoding<aclass="self-link"href="#content-encoding"></a></dfn> of a resource
are defined by <ahref="https://tools.ietf.org/html/rfc7231#section-3">Section 3
of RFC 7231</a>. <adata-link-type="biblio"href="#biblio-rfc7231">[RFC7231]</a></p>
- <p>A <dfndata-dfn-type="dfn"data-noexport=""id="base64-encoding">base64 encoding<aclass="self-link"href="#base64-encoding"></a></dfn> is defined in <ahref="https://tools.ietf.org/html/rfc4648#section-4">Section 4 of RFC 4648</a>. <adata-link-type="biblio"href="#biblio-rfc4648">[RFC4648]</a></p>
+ <p>A <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="base64 encoding"data-noexport=""id="base64-encoding">base64 encoding<spanclass="dfn-panel"data-deco=""><b><ahref="#base64-encoding">#base64-encoding</a></b><b>Referenced in:</b><span><ahref="#ref-for-base64-encoding-1">3.1. Integrity metadata</a></span><span><ahref="#ref-for-base64-encoding-2">3.3.1. Apply algorithm to response</a></span></span></dfn> is defined in <ahref="https://tools.ietf.org/html/rfc4648#section-4">Section 4 of RFC 4648</a>. <adata-link-type="biblio"href="#biblio-rfc4648">[RFC4648]</a></p>
<p>The <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-256</a>, <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-384</a>, and <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-512</a> are part
of the <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-2</a> set of cryptographic hash functions defined by the
- <p>To verify the integrity of a response, a user agent requires <dfndata-dfn-type="dfn"data-noexport=""id="integrity-metadata">integrity
-metadata<aclass="self-link"href="#integrity-metadata"></a></dfn> as part of the <adata-link-type="dfn"href="https://fetch.spec.whatwg.org#concept-request">request</a>. This metadata consists of the
+ <p>To verify the integrity of a response, a user agent requires <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="integrity
+metadata<span class="dfn-panel" data-deco=""><b><a href="#integrity-metadata">#integrity-metadata</a></b><b>Referenced in:</b><span><a href="#ref-for-integrity-metadata-1">1.2.1. Resource Integrity</a> <a href="#ref-for-integrity-metadata-2">(2)</a> <a href="#ref-for-integrity-metadata-3">(3)</a></span><span><a href="#ref-for-integrity-metadata-4">3.2. Cryptographic hash functions</a></span><span><a href="#ref-for-integrity-metadata-5">3.2.1. Agility</a></span><span><a href="#ref-for-integrity-metadata-6">3.3.3. Parse metadata</a></span><span><a href="#ref-for-integrity-metadata-7">3.5. The integrity attribute</a></span><span><a href="#ref-for-integrity-metadata-8">3.8.1. The link element for stylesheets</a></span><span><a href="#ref-for-integrity-metadata-9">3.8.2. The script element</a></span><span><a href="#ref-for-integrity-metadata-10">4. Proxies</a></span><span><a href="#ref-for-integrity-metadata-11">5.1. Non-secure contexts remain non-secure</a></span></span></dfn> as part of the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org#concept-request">request</a>. This metadata consists of the
the single quotes) in <ahref="http://www.w3.org/TR/CSP2/#source-list-syntax">section 4.2 of the Content
Security Policy Level 2 specification</a>.</p>
<p>For example, given a script resource containing only the string <code>alert(\'Hello,
-world.\');</code>, an author might choose <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-384</a> as a hash function. <code>H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO</code> is the <adata-link-type="dfn"href="#base64-encoding">base64 encoded</a> digest that results. This can be encoded
+world.\');</code>, an author might choose <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-384</a> as a hash function. <code>H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO</code> is the <adata-link-type="dfn"href="#base64-encoding"id="ref-for-base64-encoding-1">base64 encoded</a> digest that results. This can be encoded
<p>Conformant user agents MUST support the <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-256</a>, <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-384</a>,
and <adata-link-type="dfn"href="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#">SHA-512</a> cryptographic hash functions for use as part of a
-request’s <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> and MAY support additional hash functions.</p>
+request’s <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-4">integrity metadata</a> and MAY support additional hash functions.</p>
<p>User agents SHOULD refuse to support known-weak hashing functions like MD5 or
SHA-1 and SHOULD restrict supported hashing functions to those known to be
collision-resistant. Additionally, user agents SHOULD re-evaluate their
supported hash functions on a regular basis and deprecate support for those
functions that have become insecure. See <ahref="#hash-collision-attacks">§5.2 Hash collision attacks</a>.</p>
- <p>Multiple sets of <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> may be associated with a single
+ <p>Multiple sets of <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-5">integrity metadata</a> may be associated with a single
resource in order to provide agility in the face of future cryptographic discoveries.
For example, the resource described in the previous section may be described
<p>User agents must provide a mechanism for determining the relative priority of two
hash functions and return the empty string if the priority is equal. That is, if
-a user agent implemented a function like <dfndata-dfn-type="dfn"data-noexport=""id="getprioritizedhashfunction">getPrioritizedHashFunction<aclass="self-link"href="#getprioritizedhashfunction"></a></dfn>(a,
+a user agent implemented a function like <dfnclass="dfn-paneled"data-dfn-type="dfn"data-lt="getPrioritizedHashFunction"data-noexport=""id="getprioritizedhashfunction">getPrioritizedHashFunction<spanclass="dfn-panel"data-deco=""><b><ahref="#getprioritizedhashfunction">#getprioritizedhashfunction</a></b><b>Referenced in:</b><span><ahref="#ref-for-getprioritizedhashfunction-1">3.2.2. Priority</a></span><span><ahref="#ref-for-getprioritizedhashfunction-2">3.3.4. Get the strongest metadata from set</a></span></span></dfn>(a,
b) it would return the hash function the user agent considers the most
collision-resistant. For example, <code>getPrioritizedHashFunction('sha256',
'sha512')</code> would return <code>'sha512'</code> and <code>getPrioritizedHashFunction('sha256',
'sha256')</code> would return the empty string.</p>
- <pclass="note"role="note">Note: The <adata-link-type="dfn"href="#getprioritizedhashfunction">getPrioritizedHashFunction</a> is an internal
+ <pclass="note"role="note">Note: The <adata-link-type="dfn"href="#getprioritizedhashfunction"id="ref-for-getprioritizedhashfunction-1">getPrioritizedHashFunction</a> is an internal
implementation detail. It is not an API that implementors
provide to web applications. It is used in this document
<h4class="heading settled"data-level="3.3.1"id="apply-algorithm-to-response"><spanclass="secno">3.3.1. </span><spanclass="content">Apply <var>algorithm</var> to <var>response</var></span><aclass="self-link"href="#apply-algorithm-to-response"></a></h4>
<ol>
<lidata-md="">
- <p>Let <var>result</var> be the result of <ahref="#apply-algorithm-to-response">§3.3.1 Apply algorithm to response</a> to the <adata-link-type="dfn"href="#representation-data">representation data</a> without any content-codings
+ <p>Let <var>result</var> be the result of <ahref="#apply-algorithm-to-response">§3.3.1 Apply algorithm to response</a> to the <adata-link-type="dfn"href="#representation-data"id="ref-for-representation-data-1">representation data</a> without any content-codings
applied, except when the user agent intends to consume the content with
content-encodings applied. In the latter case, let <var>result</var> be
- the result of applying <var>algorithm</var> to the <adata-link-type="dfn"href="#representation-data">representation data</a>.</p>
+ the result of applying <var>algorithm</var> to the <adata-link-type="dfn"href="#representation-data"id="ref-for-representation-data-2">representation data</a>.</p>
<lidata-md="">
- <p>Let <var>encodedResult</var> be result of <adata-link-type="dfn"href="#base64-encoding">base64 encoding</a> <var>result</var>.</p>
+ <p>Let <var>encodedResult</var> be result of <adata-link-type="dfn"href="#base64-encoding"id="ref-for-base64-encoding-2">base64 encoding</a> <var>result</var>.</p>
<lidata-md="">
<p>Return <var>encodedResult</var>.</p>
</ol>
@@ -393,9 +429,9 @@ <h4 class="heading settled" data-level="3.3.2" id="is-response-eligible"><span c
only an application level security tool, and it does not change the security
state of the user agent, a Secure Context is unnecessary. However, if integrity
is used in something other than a Secure Context (e.g., a document delivered
-over HTTP), authors should be aware that the integrity provides <em>no security
-guarantees at all</em>. For this reason, authors should only deliver integrity
-metadata in a Secure Context. See <ahref="#non-secure-contexts">§5.1 Non-secure contexts remain non-secure</a> for
+over HTTP), authors are reminded that the integrity provides <em>no security
+guarantees at all</em>. For this reason, authors are encouraged to only deliver
+integrity metadata in a Secure Context. See <ahref="#non-secure-contexts">§5.1 Non-secure contexts remain non-secure</a> for
more discussion.</p>
<p>The following algorithm details these restrictions:</p>
<ol>
@@ -411,18 +447,18 @@ <h4 class="heading settled" data-level="3.3.2" id="is-response-eligible"><span c
specification <adata-link-type="biblio"href="#biblio-fetch">[FETCH]</a> and refer to the following:
<ul>
<lidata-md="">
- <p><code>basic</code> is a <adata-link-type="dfn"href="#same-origin">same-origin</a> response, and thus the requestor has full access
+ <p><code>basic</code> is a <adata-link-type="dfn"href="#same-origin"id="ref-for-same-origin-1">same-origin</a> response, and thus the requestor has full access
to read the body.</p>
<lidata-md="">
- <p><code>cors</code> is a valid response to a <adata-link-type="dfn"href="#cross-origin">cross-origin</a>, CORS-enabled request, and thus
+ <p><code>cors</code> is a valid response to a <adata-link-type="dfn"href="#cross-origin"id="ref-for-cross-origin-1">cross-origin</a>, CORS-enabled request, and thus
again the requestor has full access to read the body.</p>
<lidata-md="">
<p><code>default</code> is a valid response that is generated by a Service Worker as a
response to the request, so its body, too, is fully readable by the requestor.</p>
</ul>
</div>
<pclass="note"role="note">Note: Since the <adata-link-type="dfn"href="https://fetch.spec.whatwg.org#concept-response-type">response type</a> for data URLs will always be "opaque" for <code>script</code> and <code>link</code> elements, such URLs are never eligible for integrity
-checks. Blob URLs on the other hand are usually considered <adata-link-type="dfn"href="#same-origin">same-origin</a> and therefore are eligible for integrity checks.</p>
+checks. Blob URLs on the other hand are usually considered <adata-link-type="dfn"href="#same-origin"id="ref-for-same-origin-2">same-origin</a> and therefore are eligible for integrity checks.</p>
<p>If <var>token</var> is not a valid metadata, skip the remaining
steps, and proceed to the next token.</p>
<lidata-md="">
- <p>Parse <var>token</var> per the grammar in <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a>.</p>
+ <p>Parse <var>token</var> per the grammar in <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-6">integrity metadata</a>.</p>
<lidata-md="">
<p>Let <var>algorithm</var> be the <var>alg</var> component of <var>token</var>.</p>
<p>Let <var>newAlgorithm</var> be the <var>alg</var> component of <var>item</var>.</p>
<lidata-md="">
- <p>If the result of <adata-link-type="dfn"href="#getprioritizedhashfunction"> getPrioritizedHashFunction(<var>currentAlgorithm</var>, <var>newAlgorithm</var>)</a> is the empty string, add <var>item</var> to <var>result</var>. If the result is <var>newAlgorithm</var>, set <var>strongest</var> to <var>item</var>, set <var>result</var> to the empty
+ <p>If the result of <adata-link-type="dfn"href="#getprioritizedhashfunction"id="ref-for-getprioritizedhashfunction-2"> getPrioritizedHashFunction(<var>currentAlgorithm</var>, <var>newAlgorithm</var>)</a> is the empty string, add <var>item</var> to <var>result</var>. If the result is <var>newAlgorithm</var>, set <var>strongest</var> to <var>item</var>, set <var>result</var> to the empty
set, and add <var>item</var> to <var>result</var>.</p>
<pclass="note"role="note">Note: A future revision of this specification is likely to include integrity support
for all possible subresources, i.e., <code>a</code>, <code>audio</code>, <code>embed</code>, <code>iframe</code>, <code>img</code>, <code>link</code>, <code>object</code>, <code>script</code>, <code>source</code>, <code>track</code>, and <code>video</code> elements.</p>
- <p>The <code>integrity</code> attribute represents <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> for an element.
+ <p>The <code>integrity</code> attribute represents <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-7">integrity metadata</a> for an element.
The value of the attribute MUST be either the empty string, or at least one
valid metadata as described by the following ABNF grammar:</p>
+<dfnclass="dfn-paneled"data-dfn-type="grammar"data-export=""data-lt="hash-with-options"id="grammardef-hash-with-options">hash-with-options<spanclass="dfn-panel"data-deco=""><b><ahref="#grammardef-hash-with-options">#grammardef-hash-with-options</a></b><b>Referenced in:</b><span><ahref="#ref-for-grammardef-hash-with-options-1">3.5. The integrity attribute</a> <ahref="#ref-for-grammardef-hash-with-options-2">(2)</a></span></span></dfn> = <adata-link-type="grammar"href="#grammardef-hash-expression"id="ref-for-grammardef-hash-expression-1">hash-expression</a> *("?" <adata-link-type="grammar"href="#grammardef-option-expression"id="ref-for-grammardef-option-expression-1">option-expression</a>)
+<dfnclass="dfn-paneled"data-dfn-type="grammar"data-export=""data-lt="option-expression"id="grammardef-option-expression">option-expression<spanclass="dfn-panel"data-deco=""><b><ahref="#grammardef-option-expression">#grammardef-option-expression</a></b><b>Referenced in:</b><span><ahref="#ref-for-grammardef-option-expression-1">3.5. The integrity attribute</a></span></span></dfn> = *<adata-link-type="grammar"href="https://tools.ietf.org/html/rfc5234#appendix-B.1">VCHAR</a>
+<dfnclass="dfn-paneled"data-dfn-type="grammar"data-export=""data-lt="hash-algo"id="grammardef-hash-algo">hash-algo<spanclass="dfn-panel"data-deco=""><b><ahref="#grammardef-hash-algo">#grammardef-hash-algo</a></b><b>Referenced in:</b><span><ahref="#ref-for-grammardef-hash-algo-1">3.5. The integrity attribute</a></span></span></dfn> = <hash-algo production from [Content Security Policy Level 2, section 4.2]>
+<dfnclass="dfn-paneled"data-dfn-type="grammar"data-export=""data-lt="base64-value"id="grammardef-base64-value">base64-value<spanclass="dfn-panel"data-deco=""><b><ahref="#grammardef-base64-value">#grammardef-base64-value</a></b><b>Referenced in:</b><span><ahref="#ref-for-grammardef-base64-value-1">3.5. The integrity attribute</a></span></span></dfn> = <base64-value production from [Content Security Policy Level 2, section 4.2]>
+<dfnclass="dfn-paneled"data-dfn-type="grammar"data-export=""data-lt="hash-expression"id="grammardef-hash-expression">hash-expression<spanclass="dfn-panel"data-deco=""><b><ahref="#grammardef-hash-expression">#grammardef-hash-expression</a></b><b>Referenced in:</b><span><ahref="#ref-for-grammardef-hash-expression-1">3.5. The integrity attribute</a></span></span></dfn> = <adata-link-type="grammar"href="#grammardef-hash-algo"id="ref-for-grammardef-hash-algo-1">hash-algo</a> "-" <adata-link-type="grammar"href="#grammardef-base64-value"id="ref-for-grammardef-base64-value-1">base64-value</a>
</pre>
<p>The <code>integrity</code> IDL attribute must <adata-link-type="dfn"href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a> the <code>integrity</code> content attribute.</p>
<p><code>option-expression</code>s are associated on a per <code>hash-expression</code> basis and are
<p>Do a potentially CORS-enabled fetch of the resulting absolute URL, with the
mode being the current state of the element’s crossorigin content attribute,
the origin being the origin of the link element’s Document, the default origin
-behavior set to taint, and the <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> of the request set to
+behavior set to taint, and the <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-8">integrity metadata</a> of the request set to
the value of the element’s <code>integrity</code> attribute.</p>
<p>Replace step 14.1 of HTML5’s <adata-link-type="dfn"href="http://www.w3.org/TR/html5/scripting-1.html#prepare-a-script">prepare a script</a> algorithm with:</p>
<ol>
<lidata-md="">
<p>Let <var>src</var> be the value of the element’s <code>src</code> attribute and
- the request’s associated <adata-link-type="dfn"href="#integrity-metadata">integrity metadata</a> be the value of the
+ the request’s associated <adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-9">integrity metadata</a> be the value of the
- <p><adata-link-type="dfn"href="#integrity-metadata">Integrity metadata</a> delivered by a context that is not a <adata-link-type="dfn"href=""http://www.w3.org/TR/powerful-features/"#secure-context">Secure
+ <p><adata-link-type="dfn"href="#integrity-metadata"id="ref-for-integrity-metadata-11">Integrity metadata</a> delivered by a context that is not a <adata-link-type="dfn"href=""http://www.w3.org/TR/powerful-features/"#secure-context">Secure
Context</a> such as an HTTP page, only protects an origin against a compromise
of the server where an external resources is hosted. Network attackers can alter
the digest in-flight (or remove it entirely, or do absolutely anything else to
- <h3class="no-num heading settled"id="index-defined-here"><spanclass="content">Terms defined by this specification</span><aclass="self-link"href="#index-defined-here"></a></h3>
+ <h3class="no-num no-ref heading settled"id="index-defined-here"><spanclass="content">Terms defined by this specification</span><aclass="self-link"href="#index-defined-here"></a></h3>
+ <ulclass="index">
<li><ahref="#base64-encoding">base64 encoding</a><span>, in §2</span>
<li><ahref="#grammardef-base64-value">base64-value</a><span>, in §3.5</span>
<li><ahref="#content-encoding">content encoding</a><span>, in §2</span>
<li><ahref="#representation-data">representation data</a><span>, in §2</span>
<li><ahref="#same-origin">same-origin</a><span>, in §2</span>
</ul>
- <h3class="no-num heading settled"id="index-defined-elsewhere"><spanclass="content">Terms defined by reference</span><aclass="self-link"href="#index-defined-elsewhere"></a></h3>
- <ulclass="indexlist">
+ <h3class="no-num no-ref heading settled"id="index-defined-elsewhere"><spanclass="content">Terms defined by reference</span><aclass="self-link"href="#index-defined-elsewhere"></a></h3>
+ <ulclass="index">
<li>
<adata-link-type="biblio"href="#biblio-abnf">[ABNF]</a> defines the following terms:
<dd>D. Crocker, Ed.; P. Overell. <ahref="https://tools.ietf.org/html/rfc5234">Augmented BNF for Syntax Specifications: ABNF</a>. January 2008. Internet Standard. URL: <ahref="https://tools.ietf.org/html/rfc5234">https://tools.ietf.org/html/rfc5234</a>
+ <dd>Anne van Kesteren. <ahref="http://www.w3.org/TR/cors/">Cross-Origin Resource Sharing</a>. 16 January 2014. REC. URL: <ahref="http://www.w3.org/TR/cors/">http://www.w3.org/TR/cors/</a>
+ <dtid="biblio-fetch">[FETCH]
<dd>Anne van Kesteren. <ahref="https://fetch.spec.whatwg.org/">Fetch Standard</a>. Living Standard. URL: <ahref="https://fetch.spec.whatwg.org/">https://fetch.spec.whatwg.org/</a>
+ <dd>Ian Hickson; et al. <ahref="http://www.w3.org/TR/html5/">HTML5</a>. 28 October 2014. REC. URL: <ahref="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a>
+ <dtid="biblio-mime-types">[MIME-TYPES]
<dd>N. Freed; N. Borenstein. <ahref="https://tools.ietf.org/html/rfc2046">Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</a>. November 1996. Draft Standard. URL: <ahref="https://tools.ietf.org/html/rfc2046">https://tools.ietf.org/html/rfc2046</a>
<dd>S. Bradner. <ahref="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>. March 1997. Best Current Practice. URL: <ahref="https://tools.ietf.org/html/rfc2119">https://tools.ietf.org/html/rfc2119</a>
<dd>S. Josefsson. <ahref="https://tools.ietf.org/html/rfc4648">The Base16, Base32, and Base64 Data Encodings</a>. October 2006. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc4648">https://tools.ietf.org/html/rfc4648</a>
<dd>R. Fielding, Ed.; J. Reschke, Ed.. <ahref="https://tools.ietf.org/html/rfc7231">Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</a>. June 2014. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc7231">https://tools.ietf.org/html/rfc7231</a>
<dd>R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed.. <ahref="https://tools.ietf.org/html/rfc7234">Hypertext Transfer Protocol (HTTP/1.1): Caching</a>. June 2014. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc7234">https://tools.ietf.org/html/rfc7234</a>
- <dd>T. Dierks; E. Rescorla. <ahref="https://tools.ietf.org/html/rfc5246">The Transport Layer Security (TLS) Protocol Version 1.2</a>. August 2008. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc5246">https://tools.ietf.org/html/rfc5246</a>
<dd>P.V. Mockapetris. <ahref="https://tools.ietf.org/html/rfc1035">Domain names - implementation and specification</a>. November 1987. Internet Standard. URL: <ahref="https://tools.ietf.org/html/rfc1035">https://tools.ietf.org/html/rfc1035</a>
<dd>J. Hodges; C. Jackson; A. Barth. <ahref="https://tools.ietf.org/html/rfc6797">HTTP Strict Transport Security (HSTS)</a>. November 2012. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc6797">https://tools.ietf.org/html/rfc6797</a>
<dd>C. Evans; C. Palmer; R. Sleevi. <ahref="https://tools.ietf.org/html/rfc7469">Public Key Pinning Extension for HTTP</a>. April 2015. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc7469">https://tools.ietf.org/html/rfc7469</a>
+ <dtid="biblio-tls">[TLS]
+ <dd>T. Dierks; E. Rescorla. <ahref="https://tools.ietf.org/html/rfc5246">The Transport Layer Security (TLS) Protocol Version 1.2</a>. August 2008. Proposed Standard. URL: <ahref="https://tools.ietf.org/html/rfc5246">https://tools.ietf.org/html/rfc5246</a>
0 comments on commit
68f1959