aboutsummaryrefslogtreecommitdiff
path: root/files/pl/web/css/prywatnosc_i_znacznik__colon_visited/index.html
blob: fad2ac55d1cacd7751e5916bab01e288613fc3fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
title: 'Prywatność i znacznik :visited'
slug: 'Web/CSS/Prywatnosc_i_znacznik_:visited'
translation_of: 'Web/CSS/Privacy_and_the_:visited_selector'
---
<div>{{cssref}}</div>

<p>Przed mniej więcej rokiem 2010, <a href="/en-US/docs/Web/CSS">CSS</a>-owy znacznik {{ cssxref(":visited") }} pozwalał stronom WWW na ujawnianie historii przeglądania użytkownika i które ze stron odwiedził. Było to możliwe przez {{domxref("window.getComputedStyle")}} i inne techniki. Proces ten działał błyskawicznie i pozwalał nie tylko na ujawnienie, co użytkownik robił w sieci, ale również pozwalał na dowiedzenie się wielu informacji o jego tożsamości.</p>

<p>By załagodzić ten problem, w {{ Gecko("2") }} zaimplementowano aktualizacje dot. prywatności celem ograniczenia ilości informacji zbieranych przez odwiedzone linki. W przypadku innych przeglądarek dokonano podobnych zmian.</p>

<h2 id="Małe_białe_kłamstewka">Małe, białe kłamstewka</h2>

<p>By chronić prywatność użytkowników, Firefox i inne przeglądarki będą kłamać aplikacjom webowym w przypadku zaistnienia poniższych okoliczności:</p>

<ul>
 <li>Metoda <code>window.getComputedStyle</code> i podobne funkcje, jak {{ domxref("element.querySelector") }} zawsze zwrócą wartości wykazujące, jakoby użytkownik nigdy nie odwiedził żadnego z linku danej strony.</li>
 <li>Jeśli użyjesz selektora rodzeństwa, jak <code>:visited + span</code>, element sąsiedni (w omawianym przypadku <code>span</code>) zostanie ostylowany w sposób właściwy dla linka nieodwiedzonego.</li>
 <li>W rzadkich przypadkach, jeśli zastosujesz zagnieżdżone elementy linków i okaże się, że dobrany element jest inny, niż link, którego obecność w historii jest testowana, element zostanie wyrenderowany również, jakby nigdy nie był wcześniej odwiedzany.</li>
</ul>

<h2 id="Limits_to_visited_link_styles">Limits to visited link styles</h2>

<p>You can style visited links, but there are limits to which styles you can use. Only the following styles can be applied to visited links:</p>

<ul>
 <li>{{ cssxref("color") }}</li>
 <li>{{ cssxref("background-color") }}</li>
 <li>{{ cssxref("border-color") }} (and its sub-properties)</li>
 <li>{{ cssxref("column-rule-color") }}</li>
 <li>{{ cssxref("outline-color") }}</li>
 <li>The color parts of the {{SVGAttr("fill")}} and {{SVGAttr("stroke")}} attributes</li>
</ul>

<p>In addition, even for the above styles, you won't be able to change the transparency between unvisited and visited links, as you otherwise would be able to using <code><a href="/en-US/docs/Web/CSS/color_value#rgba()">rgba()</a></code>, <code><a href="/en-US/docs/Web/CSS/color_value#hsla()">hsla()</a></code>, or the <code><a href="/en-US/docs/Web/CSS/color_value#transparent">transparent</a></code> keyword.</p>

<p>Here is an example of how to use styles with the aforementioned restrictions:</p>

<pre class="brush: css">:link {
  outline: 1px dotted blue;
  background-color: white;
  /* The default value of background-color is `transparent`. You need to
     specify a different value, otherwise changes on :visited won't apply. */
}

:visited {
  outline-color: orange;    /* Visited links have an orange outline */
  background-color: green;  /* Visited links have a green background */
  color: yellow;            /* Visited links have yellow colored text */
}
</pre>

<h2 id="Impact_on_web_developers">Impact on web developers</h2>

<p>Overall, these restrictions shouldn't affect web developers too significantly. They may, however, require the following changes to existing sites:</p>

<ul>
 <li>Using background images to style links based on whether they've been visited will no longer work, since only colors can be used to style visited links.</li>
 <li>Colors that are otherwise transparent will fail to appear if styled in a <code>:visited</code> selector.</li>
</ul>

<h2 id="See_also">See also</h2>

<ul>
 <li><a class="external" href="http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/" title="http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/">privacy-related changes coming to CSS :visited</a> on Mozilla Hacks</li>
 <li><a class="external" href="http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/" title="http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/">Plugging the CSS History Leak</a> on the Mozilla Security Blog</li>
 <li><a class="external" href="http://dbaron.org/mozilla/visited-privacy">Preventing attacks on a user's history through CSS :visited selectors</a></li>
</ul>