0

Use Markdown-native markup for internal links.

https://gerrit.googlesource.com/gitiles/+/HEAD/Documentation/markdown.md#named-anchors

Bug: None
Change-Id: I346a14fd96020282d466be463023b1d6f110c77e
Reviewed-on: https://chromium-review.googlesource.com/c/1453549
Commit-Queue: Chris Palmer <palmer@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629372}
This commit is contained in:
Chris Palmer
2019-02-06 00:02:56 +00:00
committed by Commit Bot
parent 445482c5e4
commit 32301112da
4 changed files with 15 additions and 22 deletions

@ -32,7 +32,7 @@ trust ourselves to parse it successfully or fail safely. (But see
Obviously, any arbitrary peer on the Internet is an untrustworthy source without
some evidence of trustworthiness (which includes at least [a strong assertion of
the source's identity](#verifying-trustworthiness-source)).
the source's identity](#verifying-the-trustworthiness-of-a-source)).
_Unsafe implementation languages_ are languages that lack
[memory safety](https://en.wikipedia.org/wiki/Memory_safety), including at least
@ -82,7 +82,6 @@ of launching a utility process to parse an untrustworthy input is [Safe
Browsing's ZIP
analyzer](https://cs.chromium.org/chromium/src/chrome/common/safe_browsing/zip_analyzer.h).
<a href="verifying-trustworthiness-source"></a>
### Verifying The Trustworthiness Of A Source
If you can be sure that the input comes from a trustworthy source, it can be OK
@ -93,8 +92,7 @@ source" meets all of these criteria:
* peer's keys are [pinned in Chrome](https://cs.chromium.org/chromium/src/net/http/transport_security_state_static.json?sq=package:chromium&g=0); and
* peer is operated by a business entity that Chrome should trust (e.g. an [Alphabet](https://abc.xyz) company).
<a name="Normalization"></a>
### Normalization
### Normalization {#normalization}
You can 'defang' a potentially-malicious input by transforming it into a
_normal_ or _minimal_ form, usually by first transforming it into a format with

@ -16,8 +16,7 @@ in a controlled manner (e.g., with a ```__debugBreak```) when memory is
exhausted or in other exceptional circumstances.
<a name="TOC-Critical-severity"></a>
## Critical severity
## Critical severity {#TOC-Critical-severity}
Critical severity issues allow an attacker run arbitrary code on the underlying
platform with the user's privileges.
@ -44,8 +43,7 @@ Note that the individual bugs that make up the chain will have lower severity
ratings.
<a name="TOC-High-severity"></a>
## High severity
## High severity {#TOC-High-severity}
High severity vulnerabilities allow an attacker to execute code in the context
of, or otherwise impersonate other origins. Bugs which would normally be
@ -81,8 +79,7 @@ compromised renderer ([377392](https://crbug.com/377392)).
interaction, such as granting a permission ([455735](https://crbug.com/455735)).
<a name="TOC-Medium-severity"></a>
## Medium severity
## Medium severity {#TOC-Medium-severity}
Medium severity bugs allow attackers to read or modify limited amounts of
information, or are not harmful on their own but potentially harmful when
@ -122,8 +119,7 @@ mitigating factors ([265221](https://crbug.com/265221)).
interaction, such as dragging an object ([303772](https://crbug.com/303772)).
<a name="TOC-Low-severity"></a>
## Low severity
## Low severity {#TOC-Low-severity}
Low severity vulnerabilities are usually bugs that would normally be a higher
severity, but which have extreme mitigating factors or highly limited scope.

@ -167,8 +167,7 @@ features](https://developers.google.com/web/updates/2018/02/meltdown-spectre).
(There is [an open bug to add a CORB evaluator to
Lighthouse](https://bugs.chromium.org/p/chromium/issues/detail?id=806070).)
<a name="multiple-origins-within-a-siteinstance"></a>
##### Multiple Origins Within A `SiteInstance`
##### Multiple Origins Within A `SiteInstance` {#multiple-origins-within-a-siteinstance}
A *site* is defined as the effective TLD + 1 DNS label (“eTLD+1”) and the URL
scheme. This is a broader category than the origin, which is the scheme, entire
@ -314,8 +313,7 @@ Additionally, the mitigations typically come with a performance cost, and we may
ultimately roll some or all of them back. Some potential mitigations are so
expensive that it is impractical to deploy them.
<a name="attenuating-clocks"></a>
### Attenuating Clocks
### Attenuating Clocks {#attenuating-clocks}
Exploiting Spectre requires a clock. We dont believe its possible to
eliminate, coarsen, or jitter all explicit and implicit clocks in the Open Web

@ -86,8 +86,7 @@ For example, canonicalization converts `https://ExAmPle.com:443/one/%2e./Tw%2fo/
Do not attempt to write your own canonicalizer.
<a name="simplify"></a>
### Simplify URLs Whenever Possible
### Simplify URLs Whenever Possible {#simplify}
* [Do NOT display the username and password components](https://url.spec.whatwg.org/#url-rendering) of URLs (e.g., `https://user:password@example.com/`) anywhere the user is making a security decision.
@ -177,7 +176,7 @@ Chromes [`FormatURLForSecurityDisplay`](https://cs.chromium.org/chromium/src/
* Wrap the URL in U+202A ... U+202C, so that it is forced to appear in a LTR paragraph. The URL standard (both [RFC 3987](https://www.ietf.org/rfc/rfc3987.txt) and https://url.spec.whatwg.org) mandate that URLs are displayed in LTR paragraphs, no matter what they contain.
<a id="sneakyunicode"></a>
<a name="sneakyunicode"></a>
#### Sneaky Unicode Characters
An attacker may abuse whitespace and line-wrapping characters in order to push the display of their true origin out of view. Such characters should be banned or displayed in %-escaped form.
@ -274,13 +273,15 @@ A **homograph** (or **homoglyph**) **attack** occurs when an attacker uses looka
**International Domain Names** is a mechanism for using Unicode characters for hostnames. Under the covers, the Unicode labels are encoded using **[punycode](https://tools.ietf.org/html/rfc3492)** and prefixed with **xn--**. The browser may display the label in Unicode, or in the underlying punycode form. Users are not expected to be able to decode the punycode form: display in this form is intended to foil spoofing attempts.
<a id="label"></a>A **[label](https://en.wikipedia.org/wiki/DNS_label#Parts_of_a_domain_name)** is a single component of a [domain name](https://en.wikipedia.org/wiki/Domain_name) string, delimited by periods. For instance, "*www*", “*microsoft*”, and “*com*” are the three labels in the domain name “*www.microsoft.com*”.
<a name="label"></a>
A **[label](https://en.wikipedia.org/wiki/DNS_label#Parts_of_a_domain_name)** is a single component of a [domain name](https://en.wikipedia.org/wiki/Domain_name) string, delimited by periods. For instance, "*www*", “*microsoft*”, and “*com*” are the three labels in the domain name “*www.microsoft.com*”.
A **plain hostname** is an unqualified, single-label hostname like "*payroll*", which typically refers to a server on a local intranet.
A **[Public Suffix](https://publicsuffix.org/)** is the suffix portion of a FQDN under which independent entities may register subdomains. For example, *ltd.co.im* is a Public Suffix. A Public Suffix contains one or more labels. Sometimes the term "[effective TLD](https://wiki.mozilla.org/Gecko:Effective_TLD_List)" is used as a synonym.
<a id="registrabledomain"></a>The **registrable domain** is the public suffix plus one additional label. Sometimes eTLD+1 is used as a synonym.
<a name="registrabledomain"></a>
The **registrable domain** is the public suffix plus one additional label. Sometimes eTLD+1 is used as a synonym.
## A Caveat on Security Sensitive Surfaces
@ -338,4 +339,4 @@ Chromium's open-source [Trickuri](https://github.com/chromium/trickuri) tool is
* [Chromiums URL Formatter Component (C++)](https://cs.chromium.org/chromium/src/components/url_formatter/url_formatter.cc)
* [URL interop issues across specs](https://github.com/bagder/docs/blob/master/URL-interop.md)
* [URL interop issues across specs](https://github.com/bagder/docs/blob/master/URL-interop.md)