現代網絡技術提供越來越豐富的在線體驗,但是由於可用性,安全性和隱私考慮,某些功能可能會出乎意料地行事。本文重點介紹了幾個這樣的情況。
:visited
鏈接和getComputedStyle
限制訪問鏈接的樣式(<visited></visited>
)長期以來一直局限於防止歷史洩漏。嘗試在訪問的鏈接上使用getComputedStyle
嘗試將返回未訪問的樣式。使用副作用或同級選擇器的解決方法無效。這種限制強調了瀏覽器功能開發的複雜性,以及開發人員需要意識到這些細微差別的需求。
以前,CDN啟用了跨多個站點的Google字體等資產的瀏覽器緩存。但是,這產生了重大的隱私漏洞,從而使時間攻擊可以揭示用戶瀏覽歷史記錄。為了解決這個問題,瀏覽器不再允許跨站點資產緩存。
performance.now()
中的不准確性像Spectre這樣的漏洞利用了performance.now()
訪問敏感的CPU數據。為了減輕這種情況,瀏覽器有意降低了performance.now()
,將噪聲(20μs至1ms)引入,這些噪聲(20μs至1ms)根據HTTP標頭和瀏覽器設置等因素而變化。
雖然loading="lazy"
屬性簡化了圖像和iFrame(在某些瀏覽器中)的懶惰加載,但要理解它需要JavaScript才能功能。禁用JavaScript可防止懶惰加載作為反向跟踪措施。懶惰加載“無JavaScript”的主張具有誤導性。
用戶可以顯著限制瀏覽器功能,以增強安全性和隱私性,如Firefox和TOR等瀏覽器所見,並具有“抗擊指紋”設置。這會影響可變精度,API訪問和媒體查詢匹配之類的功能。漸進式增強和優雅的降解對於減輕這種情況至關重要。
語義HTML可提高可訪問性,但是屏幕讀取器可能並不總是按預期解釋語義。刪除列表標記可以在某些瀏覽器中消除語義含義,以及像這樣的元素所傳達的重點<strong></strong>
,,,,<em></em>
, 和<mark></mark>
由於潛在的噪音,可能不一致或省略。與用戶進行測試並考慮視覺樣式至關重要。
瀏覽器供應商可以實施Web存儲的到期政策以增強隱私,從而限制數據的持久性。例如,Safari將腳本可及的存儲限制為7天。
許多Web功能的行為與直覺上的預期完全沒有。開發人員應批判性地評估用戶需求,並確定漸進式增強和優雅的降級,以確保瀏覽器和用戶偏好之間的穩定功能,並承認完美的跨瀏覽器奇偶校驗通常是無法實現的。了解這些限制是構建強大且可訪問的網站的關鍵。
以上是可能無法正常工作的網絡功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!