diff --git a/index.html b/index.html index d13fd3ee..96849e0b 100644 --- a/index.html +++ b/index.html @@ -428,8 +428,72 @@
If request has a Host header, + let host be the value of that header. Otherwise + let host be undefined.
If request has an Origin header, + let origin be the value of that header. Otherwise + let origin be undefined.
If request has an Content-Type header, + let content-type be the value of that header. Otherwise + let content-type be undefined.
If any of the following conditions hold: +
host is undefined.
host doesn't match the Host
+ grammar [[RFC7230]]
The result of host parsing the uri-host
+ part of host is not an IP address,
+ a domain identical to the
+ host of the HTTP server or to another host the
+ implementation has been configured to allow.
The port
part of host is present
+ but doesn't match the port of the HTTP server.
The port
part of host is not
+ present, and the port of the HTTP server doesn't match the
+ default port for the request's scheme.
The implementation wants to reject connections + with host as the Host header.
Then send an error with error code unknown + error, and jump to step 1.
+ +Rejecting connections with unexpected values in the + Host header prevents DNS rebinding attacks. Implementations + can opt to provide more stringent controls where appropriate, for + example only accepting connections when the host value + corresponds to a loopback interface [[RFC5735]]. Further guidance + for implementors is given in the security + section.
+If origin is not undefined and is not identical to + an Origin header value that the implementation has been + configured to allow, then stop running these steps and act as if the + requested service is not available.
+ +Rejecting connections with unexpected values in + the Origin header is necessary to prevent untrusted websites + from establishing a WebDriver session.
If content-type is not undefined, and
+ ("content-type
", content-type) is a
+ [=CORS-safelisted request-header=], or otherwise if the value
+ of content-type is not a Content-Type header the
+ implementation allows, then stop running these steps and act as if
+ the requested service is not available.
This provides an additional layer of defence against
+ requests originating from untrusted websites. Implementations can
+ choose to implement this by only accepting requests with the
+ "application/json
" Content-Type header.
Let request match be the result of the algorithm to match a request with request’s @@ -10433,18 +10497,18 @@
To prevent arbitrary machines on the network - from connecting and creating sessions, - it is suggested that only connections from - loopback devices are allowed by default. - -
The remote end can include
- a configuration option to limit
- the accepted IP range allowed to connect and make requests.
- The default setting for this might be
- to limit connections to the IPv4 localhost
- CIDR range 127.0.0.0/8
- and the IPv6 localhost address ::1
. [[RFC4632]]
+
To prevent arbitrary machines on the network from connecting and + creating sessions, it is suggested that only connections from + loopback devices are allowed by default. However, testing setups + commonly put the remote end and local end on different + network hosts. Users deploying such a setup are encouraged to + restrict access to the remote end to the greatest extent possible, + either by restricting network connections to trusted hosts (e.g. in + the case of a lab setting, or the remote end running in a containers + on the same bridged network), or by routing all connections through + an intermediary node that provides authorization and + authentication. Remote end implementors are encouraged to + provide minimal, opt-in, configuration to support these scenarios.
It is also suggested that user agents make an effort to visually distinguish @@ -10958,6 +11022,21 @@
The following terms are defined in the Web Origin Concept specification: [[RFC6454]] +
The following terms are defined in the Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing specification: [[RFC7230]] +
The following terms are defined in the Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content specification: [[RFC7231]] +
+The following terms are defined in the Cookie specification: [[RFC6265]]