Skip to content

Commit 8b0e4a1

Browse files
committed
Move "fingerprinting vector" definition to Infra Standard
PR to add equivalent text in Infra: whatwg/infra#115
1 parent bf139cb commit 8b0e4a1

File tree

1 file changed

+1
-72
lines changed

1 file changed

+1
-72
lines changed

source

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -792,78 +792,6 @@ interface <dfn data-x="">Example</dfn> {
792792

793793

794794

795-
<h3 id="fingerprint">Privacy concerns</h3>
796-
797-
<!-- NON-NORMATIVE SECTION -->
798-
799-
<p>Some features of HTML trade user convenience for a measure of user privacy.</p>
800-
801-
<p>In general, due to the Internet's architecture, a user can be distinguished from another by the
802-
user's IP address. IP addresses do not perfectly match to a user; as a user moves from device to
803-
device, or from network to network, their IP address will change; similarly, NAT routing, proxy
804-
servers, and shared computers enable packets that appear to all come from a single IP address to
805-
actually map to multiple users. Technologies such as onion routing can be used to further
806-
anonymize requests so that requests from a single user at one node on the Internet appear to come
807-
from many disparate parts of the network.</p>
808-
809-
<p>However, the IP address used for a user's requests is not the only mechanism by which a user's
810-
requests could be related to each other. Cookies, for example, are designed specifically to enable
811-
this, and are the basis of most of the Web's session features that enable you to log into a site
812-
with which you have an account.</p>
813-
814-
<p>There are other mechanisms that are more subtle. Certain characteristics of a user's system can
815-
be used to distinguish groups of users from each other; by collecting enough such information, an
816-
individual user's browser's "digital fingerprint" can be computed, which can be as good, if not
817-
better, as an IP address in ascertaining which requests are from the same user.</p>
818-
819-
<p>Grouping requests in this manner, especially across multiple sites, can be used for both benign
820-
(and even arguably positive) purposes, as well as for malevolent purposes. An example of a
821-
reasonably benign purpose would be determining whether a particular person seems to prefer sites
822-
with dog illustrations as opposed to sites with cat illustrations (based on how often they visit
823-
the sites in question) and then automatically using the preferred illustrations on subsequent
824-
visits to participating sites. Malevolent purposes, however, could include governments combining
825-
information such as the person's home address (determined from the addresses they use when getting
826-
driving directions on one site) with their apparent political affiliations (determined by
827-
examining the forum sites that they participate in) to determine whether the person should be
828-
prevented from voting in an election.</p>
829-
830-
<p>Since the malevolent purposes can be remarkably evil, user agent implementors are encouraged to
831-
consider how to provide their users with tools to minimize leaking information that could be used
832-
to fingerprint a user.</p>
833-
834-
<p>Unfortunately, as the first paragraph in this section implies, sometimes there is great benefit
835-
to be derived from exposing the very information that can also be used for fingerprinting
836-
purposes, so it's not as easy as simply blocking all possible leaks. For instance, the ability to
837-
log into a site to post under a specific identity requires that the user's requests be
838-
identifiable as all being from the same user, more or less by definition. More subtly, though,
839-
information such as how wide text is, which is necessary for many effects that involve drawing
840-
text onto a canvas (e.g. any effect that involves drawing a border around the text) also leaks
841-
information that can be used to group a user's requests. (In this case, by potentially exposing,
842-
via a brute force search, which fonts a user has installed, information which can vary
843-
considerably from user to user.)</p>
844-
845-
<p w-nodev>Features in this specification which can be <dfn data-x="fingerprinting vector">used to
846-
fingerprint the user</dfn> are marked as this paragraph is.
847-
<!--INSERT FINGERPRINT-->
848-
</p>
849-
850-
<p>Other features in the platform can be used for the same purpose, though, including, though not
851-
limited to:</p>
852-
853-
<ul>
854-
855-
<li>The exact list of which features a user agents supports.</li>
856-
857-
<li>The maximum allowed stack depth for recursion in script.</li>
858-
859-
<li>Features that describe the user's environment, like Media Queries and the <code>Screen</code>
860-
object. <ref spec=MQ> <ref spec=CSSOMVIEW></li>
861-
862-
<li>The user's time zone.</li>
863-
864-
</ul>
865-
866-
867795
<h4 id="fingerprint-postMessage">Cross-site communication</h4>
868796

869797
<p>The <code data-x="dom-window-postMessage">postMessage()</code> API provides a mechanism by
@@ -2357,6 +2285,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
23572285
<li>The general iteration terms <dfn data-x-href="https://infra.spec.whatwg.org/#iteration-while">while</dfn>,
23582286
<dfn data-x-href="https://infra.spec.whatwg.org/#iteration-continue">continue</dfn>, and
23592287
<dfn data-x-href="https://infra.spec.whatwg.org/#iteration-break">break</dfn>.</li>
2288+
<li id="fingerprint"><dfn id="fingerprinting-vector" data-x-href="https://infra.spec.whatwg.org/#fingerprinting-vector">fingerprinting vector</dfn>
23602289
<li><dfn data-x-href="https://infra.spec.whatwg.org/#code-point">code point</dfn> and its synonym
23612290
<dfn data-x-href="https://infra.spec.whatwg.org/#code-point">character</dfn></li>
23622291
<li><dfn data-x-href="https://infra.spec.whatwg.org/#surrogate">surrogate</dfn></li>

0 commit comments

Comments
 (0)