@@ -792,78 +792,6 @@ interface <dfn data-x="">Example</dfn> {
792
792
793
793
794
794
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
-
867
795
<h4 id="fingerprint-postMessage">Cross-site communication</h4>
868
796
869
797
<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
2357
2285
<li>The general iteration terms <dfn data-x-href="https://infra.spec.whatwg.org/#iteration-while">while</dfn>,
2358
2286
<dfn data-x-href="https://infra.spec.whatwg.org/#iteration-continue">continue</dfn>, and
2359
2287
<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>
2360
2289
<li><dfn data-x-href="https://infra.spec.whatwg.org/#code-point">code point</dfn> and its synonym
2361
2290
<dfn data-x-href="https://infra.spec.whatwg.org/#code-point">character</dfn></li>
2362
2291
<li><dfn data-x-href="https://infra.spec.whatwg.org/#surrogate">surrogate</dfn></li>
0 commit comments