2012-07-06 40 views
4

如果您在CDN,@ font-face或Typekit等服務上使用託管字體,主機是否可以讀取所有字符正在通過您網頁中的字體呈現(並因此閱讀您網頁的內容)?託管的Web字體,CDN,@ font-face和隱私

如果是這樣,這似乎是一個重大的隱私問題。

關於此主題的任何專業知識或推薦閱讀?

回答

9

Web字體以整體文件形式存儲(WOFF,OTF,EOT或SVG),必須由瀏覽器全部提取以顯示其中的任何字符。所以無法檢測單個字符的使用情況。

Web字體嵌入存在潛在的隱私泄漏,但它比這更微妙,並且不太可能被任何東西利用。

只有當你使用Web字體作爲後備的字體,比如出現:

@font-face { 
    font-family: "One"; 
    src: url(http://themes.googleusercontent.com/static/fonts/overlock/v2/Pr-80_x4SIOocpxz2VxC5fesZW2xOQ-xsNqO47m55DA.woff) format('woff'); 
} 
@font-face { 
    font-family: "Two"; 
    src: url(http://themes.googleusercontent.com/static/fonts/overlock/v2/EcjpF2hW5gSZ4M16YLdG84bN6UDyHWBl620a-IRfuBk.woff) format('woff'); 
} 
p { 
    font-family: "One", "Two", sans-serif; 
} 

在這個例子中,如果有在<p>元素只有拉丁字符,瀏覽器可能會選擇取只有字體「One」的WOFF文件。如果「One」字體中沒有其他字符,則瀏覽器也必須獲取第二個文件,以便在「Two」中查找字符的字形。因此,外部團隊可以知道在頁面上使用了一個或多個不存在於「One」中的字符。

我不會擔心它。這是國際海事組織非常不可能使用嵌入式後備字體(除了故意地嘗試優化常用字符以及使用不同字符的相同字體的擴展版本)。

無論如何,它不會發生在所有瀏覽器上。 Chrome會這樣做; Firefox總是獲取文檔中元素使用的字體族列表中包含的每個嵌入字體。

+0

哇,這是一個很棒的答案。謝謝。 :-) – 2012-07-08 16:47:07