现代网络技术提供越来越丰富的在线体验,但是由于可用性,安全性和隐私考虑,某些功能可能会出乎意料地行事。本文重点介绍了几个这样的情况。
: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中文网其他相关文章!