CSS中:visited的隱私保護

CSS 僞類 (Pseudo-classes)

錨僞類在支持 CSS 的瀏覽器中,連接的不一樣狀態均可以不一樣的方式顯示,這些狀態包括:活動狀態,已被訪問狀態,未被訪問狀態,和鼠標懸停狀態。css

 {color: #FF0000}		/* 未訪問的連接 */
 {color: #00FF00}	/* 已訪問的連接 */
 {color: #FF00FF}	/* 鼠標移動到連接上 */
 {color: #0000FF}	/* 選定的連接 */a:linka:visiteda:hovera:active

對於a標籤的使用常常經過僞類來改變樣式,好比hover懸停後的background背景,font-size字體大小,text-decoration文本樣式(none去下劃線),color字體顏色等,可是在:visited下卻沒法改變這麼多樣式。html

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7 .fi:hover{
 8     text-decoration: none;
 9     color: green;
10     font-size: 20px;
11     background-color: red; 
12     border: 1px solid black;
13 }
14 .se:visited{
15     text-decoration: none;/*無效*/
16     color: green;
17     font-size: 20px;/*無效*/
18     background-color: red; /*這個按理來講應該有效*/   
19     border: 1px solid black;/*無效*/
20 }
21         </style>
22     </head>
23     <body>
31         <a href="#qwe" class="fi">123465</a><br />
32         <a href="#aasd" class="se">7890</a>
33     </body>
34 </html> 

緣由在於:visited的privacy concerns隱私保護。原文連接瀏覽器

許多年前,CSS:visited曾是一種查詢用戶歷史記錄的途徑,它自身並無什麼威脅,可是當其與js中的getComputedStyle()聯合,即可以經過你的歷史記錄找到你去過哪裏。其速度可達到210,000 URLs每分鐘,那麼就有可能得到你大量的歷史信息或者經過指紋打印複製你的身份。因爲瀏覽器能夠保存很長一段時間的歷史記錄,這種方法能夠暴露你至關一部分瀏覽信息。😒(不應看的別看)。字體

哇靠,那羣牛逼的人當讓不想讓別人看到本身每天在哪些網上下資源啦,因此他們開始着手保護用戶ziji的隱私。好吧,他們是這麼作的。網站

  • 將getComputedStyle方法變性,老是返回values就好像用戶從沒訪問過這個網站。(不過我沒試過這究竟是個什麼東西。)
  • 將:visited閹割,只能用於修改color,background-color,border-*-color,outline-color,以及部分的fill和stroke屬性,其餘屬性則被:link代替。而且不能用rgba(),hsla(),transparent這些顏色。

翻譯的有錯誤的地方,歡迎來打我臉。😶spa

相關文章
相關標籤/搜索